T-SQL基础知识

1. 索引  

(1) 建立索引  

create [unique][cluster] index <索引名> on <表名> (<列名>[<次序>])    

unique是唯一索引,保证列不重复;而cluster是聚簇索引,是指索引项的顺序与表中的记录的物理顺序一致的索引组合,一个表只能建立一个聚簇索引,如果该列经常更新,就不宜在该列上建立聚簇索引 .

 例子: Create unique index stuIndex on stu(ID asc,name desc)    

(2) 删除索引  drop index <索引名> on 表

2. 查询  select [all|distinct] 字段名 from 表或者视图 where 条件表达式 group by [没有使用聚合函数的字段] having 条件 order by [asc|desc]    

UNION连接表:UNION并不像JOIN关键字一样是个真正的联接,它更像是联接两个查询结果.  

需要注意的地方:  

a. 所有进行UNION的查询,SELECT列表中列的 数量 必须相同.  

b. 为合并的结果集返回的标头(查询结果集的列名)仅取第一个查询.  

c. 一个查询中的每一列数据类型必须与其他查询中对应的列的数据类型隐式兼容.  

d. UNION默认返回的方式是DISTINCT而非ALL,除非指定了ALL关键字,否则,只返回一个有重复的行.   

例如: select col1 from t1 uncion all select col2 from t2; –> 这样就能返回所有的行了。

3. 插入  

(1) 单一直插入  insert into 表 (字段) values (值).

(2) 整体插入  insert into 表 子查询.

4. 更新数据  

update 表 set 字段=值 where 条件表达式.

5. 删除  

delete from 表 where 条件表达式.

6. 视图  

(1) 视图的建立  

create view 视图名 (字段) as 子查询 [with check option]  其中,子查询可以是任意复杂的select语句,但通常不允许含有order by子句合distinct短语.  

[with check option]书上解释得不清楚,用到时上网学习.

(2) 视图的删除

drop view 视图名 [cascade]  

注:如果该视图上还导出了其他视图,则使用cascade级联删除语句,把该视图和由它导出的所有视图一起删除.

7. 触发器  

触发器的建立  

create trigger trigger_name on table|view alter|instead of [insert,update,delete]  as  begin   功能语句块  end

 注:sql为每个触发器都自动创建了两种特殊的表,即deleted表和inserted表.  

(1)deleted表用于存储delete和update所影响的行的副本.  

(2)inserted表用于存储insert和update所影响的行的副本.

 如果一个触发器执行引发了另一个触发器,叫嵌套触发器,触发器最多可以嵌套32层.  

(1)RaisError 自定义错误提示.  

(2)RollBack 回滚.  

8. 存储过程  

create procedure 存储过程名 [@参数名[=default][=output]]   as   begin    功能语句块   end

9. 游标  

(1) 声明游标  declare cursor_name cursor [forward_only(默认)|scroll] [static|keyset|dynamic(默认,每次读取都更新表)] for 查询语句.

(2) 打开游标  open 游标名称    

(3) 读取游标

fetch [next|prior|first|last] from into @局部变量名     

   (1) current of 游标名 表示当前游标   

   (2) @@fetch_status=0 表示读取成功

(4) 关闭游标  close 游标名称

(5) 删除游标  DealLocal 游标名称

10. 事务  Begin TransAction  commit  TransAction  rollBack TransAction

11. 部分全局变量参数

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

 @@INENTITY  最后一次插入的标识值.  

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

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

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

 @@TRANSCOUNT  当前连接打开的事务数.

 @@VERSION  SQL Server的版本信息.

12. 相关设置  

(1) set nocount on/off  打开、关闭提示影响的行数.

(2) set xact_abort on/off  打开、关闭事务.

(3) set implicit_transactions on/off将连接设置为隐式事务模式,如果设置为0ff,则使连接恢复为自动提交事务模式;如果设置为on,用户每次必须显示提交或回滚,否则当用户断开连接时,事务及其所包含的所有数据更改将回滚.

原文地址:https://www.cnblogs.com/Jonish/p/3272308.html