SQL入门知识大纲



SQL

•范式

     第一范式◾目标是确保每列的原子性。每列都是不可再分的最小数据单元 ◦

     第二范式◾目标是要求每个表值描述一件事情 ◦

      第三范式◾除了主键以外的其他列都不传递依赖于主键列

•语句◦

     插入◾INSERT INTO 表名(列1,列2····)VALUES(值1,值2····) ◦

     删除◾DELETE FROM 表名 WHERE ◦

     修改◾UPDATE 表名 SET 列1=值1,列2=值2··· WHERE ◦

      查找◾SELECT 列1,列2···FROM 表名 WHERE ··· group by··· having····order by

             ◾SELECT 列1,列2 FROM 表1 INNER JOIN 表2 ON···· ◦

约束

     ◾加约束◾alter table 表名 //add constraint 约束名 约束类型 约束说明

     ◾删约束◾alter table 表名//drop constraint 约束名 ◦

     ◾system databases 新建的数据库,systemobjects 新建的数据表,sysindexs 索引

     ◾新数据库 if exists (select * from system databases where name='') //drop database/table 名 //create database 名 //on { //name = //size= //maxsize= //filegrowth= //filename= } //log on { // 同上

     ◾新表 列名 数据类型 是否为空 ◦

循环

◾IF ELSE

     ◾IF(条件)//BEGIN//语句//END//ELSE//BEGIN//语句//END

◾WHILE

     ◾WHILE(条件)//BEGIN//语句//BREAK//END

◾CASE

     ◾CASE//WHILE 条件1 THEN 结果1//WHILE 条件2 THEN 结果2·············//END

 •列操作◦

     max(列),min(列),avg(列),sum(列),count(列)

•完整性◦

     域完整性◾检查约束(CHECK_KEY),默认约束(DEFAULT),非空约束 ◦

     实体完整性◾主键约束(PRIMARY_KEY),唯一约束(UNIQUE),标识列 ◦

     引用完整性◾外键约束(FOREIGN) ◦

     自定义完整性◾触发器,存储过程,规则

•数据类型转换◦

     convert(数据类型,变量) ◦

     cast(变量名 as 数据类型)

•变量◦

     定义变量(局部)

          ◾Declare @变量名 数据类型 ◦赋值

          ◾Set/Select @变量名 = 值 ◦

     全局变量

          ◾@@ERROR 最后一个T-SQL错误的错误号

          ◾@@IDENTITY 最后一次插入的标识值

          ◾@@LANGUAGE 当前使用的语言的名称

          ◾@@MAX_CONNECTIONS 可以创建的同时连接的最大数目

          ◾@@ROWCOUNT 受上一个SQL语句影响的行数

          ◾@@SERVERNAME 本地服务器的名称

          ◾@@TRANSCOUNT 当前连接打开的事物数

          ◾@@VERSION SQL Server的版本信息

•事务(TRANSACTION)◦

     作为单个逻辑工作单元执行的一系列操作。

     多个操作作为一个整体向系统提交,要么都执行,要么都不执行。

     事务是一个不可分割的工作逻辑单元 ◦

     ACID属性

          ◾原子性(Atomicity)事务是一个完整的操作,要么一起执行,要么一起不执行

          ◾一致性(Consistency)事务完成时,数据必须处于一致状态

          ◾隔离性(Isolation)并发事务之间彼此隔离,独立,不应以任何方式影响和依赖

          ◾永久性(Durability)事务完成后,它对数据库的修改被永久保持 ◦

     开始事务 BEGIN Transaction

     提交事务 Commit Transaction

     回滚(撤销)事务 Rollback Transaction ◦

     将隐性事务模式设置为打开 SET IMPLICIT_TRANSACTIONS ON

•视图◦

     一个查询的名字,提高数据安全性,是一张虚拟表,不存放数据。

     将多个物理数据库抽象为一个逻辑数据库 ◦

     新建视图 Create View 名字 //AS(SELECT查询语句)

•索引◦

     唯一索引(Unique不运行两行具有相同的索引值) ◦

     主键索引(是唯一索引的特殊类型) ◦

     聚集索引(clustered 一张表只允许有一个聚集索引。表中各行的物理顺序于键值的逻辑索引顺序相同)

     非聚集索引(nonclustered指定表的逻辑顺序) ◦

     创建索引

          ◾Create [Unique/clustered/nonclustered] Index 名字 on 表名(列)[with Fill factor = x]x表示填充因子:制定一个0-100的值,表示索引页填充的百分比 ◦

          注意事项◾查询时,避免*,只返回需要列;索引尽量小,字节数小的列上建立索引;包含索引列的表达式作为条件时应写在第一个;避免在order by子句中使用表达式;根据业务数据发送频率,定期重新生成或重新组织索引

•存储过程◦

     预先存储好的SQL程序(操作语句,变量,逻辑控制语句);保存在数据库中;通过名称和参数执行,也可返回结果;存储过程嵌套最大32层 ◦

     系统存储过程

          ◾sp_databases 列出服务器上的所有数据库

          ◾sp_renamedb 更改数据库的名称

          ◾sp_tables 返回当前环境下可查询的对象的列表

          ◾sp_columns 返回某个列的信息

          ◾sp_hele 查看某个表的所有信息

          ◾sp_helpconstraint 查看某个表的约束

          ◾sp_helptext 显示默认值,未加密的存储过程,用户定义的存储过程,触发器或试图的实际文本

          ◾sp_helpindex 查看某个表的索引

          ◾sp_password 添加或修改登陆账户的密码 ◦

     调用

          ◾execute 过程名[参数] ◦

     创建

          ◾create proc[edure] 存储过程名 //@参数1 数据类型 = 默认值 output,···//As SQL语句//Go

•触发器TRIGGER◦

     定义

          ◾一种特殊的存储过程,在对表进行更新删除插入自动执行,

          ◾也具备事务的功能;

          ◾能在多表之间执行特殊的业务规则

          ◾不能直接调用,常用于强制业务规则,高及约束 ◦

     创建

          ◾create Trigger 名 On 表名[with encryption]//For 触发器类型[Delete,Update,Insert]//As Sql语句//GO with encryption表示加密触发器定义的SQL文本

•游标◦

     是一种能从包括多条数据记录的结果集中每次提取一条的机制; 可以用来存放在数据库表中的数据行副本,可以指向存储在数据库中的数据行的指针; ◦

     常见用途,保存查询结果 ◦fetch next from 游标名 into//Set nocount ON/OFF

你可能感兴趣的:(数据库,SQL)