一.事务
1.什么是事务?
事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求
2.事务的属性(ACID)
1)原子性
事务是一个完整的操作.事务的各元素是不可分割的
2)一致性
当事务完成时,数据必须处于一致状态
3)隔离性
对数据进行修改的所有并发事务是彼此隔离的,表明事务必须是独立的,不应以任何方式依赖于或影响其它事务
4)持久性
事务的持久性指不管系统是否发生了故障,事务处理的结果都是永久的
3.如何执行事务
1)开始事务
begin transaction
标记一个事务的开始
2)提交事务
commit transaction
标记一个事务成功结束
3)回滚事务
rollback transaction
清除自事务起始点至该语句所做的所有数据更新操作,将数据状态回滚到事务开始前,并释放由事务控制的资源
事务分类:
显式事务:用begin transaction明确指定事务的开始
隐式事务:通过设置set implicit_transactions on 语句,将隐式事务模式设置为打开
自动提交事务:这是SQL server 的默认模式,它将每条单独的T-SQL语句视为一个事务
事务应用示例
--开始转账! begin transaction --开启事务 declare @errorsum int set @errorsum=0 update Bank set cardBalance-=10000 where cradId=1 set @errorsum+=@@ERROR --记录错误号 update Bank set cardBalance+=10000 where cradId=2 set @errorsum+=@@ERROR --记录错误号 --判断是否有错误 if(@errorsum>0) begin rollback transaction --事务回滚, end else begin commit transaction --事务提交, end
二.视图
1.什么是视图?
视图是种虚拟表,不能保存数据
2.创建和使用视图
第一种方法:
1)展开数据库,选择视图
2)添加表自动连接,会自动生成相应的T-SQL语句
3)选择希望查看的列,然后单击运行
第二种方法:
create View view_name as select语句
3.删除视图
drop View view_name
4.查看视图数据
select col_name1,col_name2,........ from view_name
示例
--创建视图 create view vw_Bank as select * from Bank --查询视图 select * from vw_Bank
三.索引
1.什么是索引?
索引是SQL Server编排数据的内部方法,是检索表中数据的直接通道
索引页是数据库中存储索引的数据页
索引的作用是通过使用索引,提高数据库的检索速度,改善数据库性能
2.索引分类
1)唯一索引
唯一索引不允许两行具有相同的索引值
2)主键索引
主键索引是唯一索引的特殊类型
3)聚集索引
在聚集索引中,表中各行的物理顺序和键值的逻辑顺序相同
4)非聚集索引
非聚集索引建立在索引页上,当查询数据时可以从索引中找到记录存放的位置
注意:
在一张表中只能有一个聚集索引,但非聚集索引可以有多个,最多可以有254个,如果唯一一张表设置了主键,那么该列会自动提升为聚集索引,聚集索引和表中的物理记录顺序一致
5)复合索引
在创建索引时,并不是只能对其中一列创建索引,与创建主键一样,可以将多个列组合作为索引,这种索引成为复合索引
6)全文索引
全文索引是一种特殊类型的基于标记的功能性索引
3.创建索引
create [unique] [clustered|nonclustered] index index_name on table_name (column_name[,column_name]...) [with fillfactor=x]
4.删除索引
drop index table_name.index_name
5.查看索引
1)用系统存储过程sp_helpindex查看
sp_helpindex table_name
2)用视图sys.indexes
select * from sys.indexes