继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

SQL入门知识大纲

青春有我
关注TA
已关注
手记 1239
粉丝 205
获赞 1008

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文本



作者:骘涅
链接:https://www.jianshu.com/p/99e60faca27c


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP