视图、事务、索引
事务
什么是事务?
事务是将一个或多个T-SQL语句封装成一个可执行单元交给SQL Server引擎执行,要么所有语句执行成功,要么所有语句执行失败不存在某一条语句执行成功而其它语句为执行成功的现象!
事物的四个要素
原子性(atomicity):食物是一个完整的操作,事物的素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败则整个事务失败
一致性(consistency):当事务完成是,数据必须处于一致状态,也就是说事务不能使数据处于不稳定状态
隔离性(isolation):对数据进行修改所有并发事务是彼此隔离的,这表明事务必须是独立的。不应以任何方式依赖或影响其他事务
持久性(durability):事务的持久性值不管系统是否发生故障,事务处理的结果都是永久保存的
执行事务的语法:
开始事务:
begin transaction
回滚撤销事务:
rollback transaction
提交事务:
commit transaction
视图
视图是保存在数据库上的select查询。使用视图的原因有两种:
- 出于安全考虑,用户不必看到整个数据库的结构,而隐藏部分数据
- 符合用户的日常业务逻辑,使他们对数据更容易理解
什么是视图?
视图是另一种查看数据库中一个表或多个表中数据的方法,视图是一个虚拟表视图保存的并不是数据值。而是引用表的sql语句
创建视图的语法
create view view_name
as
<select语句>
删除视图的语法
drop view view_name
查看视图的语法
select col_name1,……,col_namen from view_name
索引
什么是索引?
索引是某个表中一列或若干列值的集合相应的指向表中物理表示这些值的数据页的逻辑指针清单
索引是SQL Server 编排数据的内部方法,是检索表中数据的直接通道
索引的作用是通过索引,大大提高数据库的检索速度,改善数据库的性能
索引分类
唯一索引:唯一索引不允许两行具有相同的索引值(创建了唯一索引将自动创建唯一索引)
主键索引:在数据库关系图中创建某列为主键则自动创建主键索引,主键索引是唯一索引的特殊形态
聚集索引:在聚集索引中,表中的各行的物理顺序与键值的逻辑顺序(索引)相同(如果表中将某列设置主键则改列将自动被提升为聚集索引(该表中事先没有聚集索引))一个表中只能包含一个聚集索引
非聚集索引:非聚集索引建立在索引页上,当查询数据时可以从索引中找到记录存放的位置(非聚集索引是表中各行数据存放的物理顺序与键值的逻辑顺序不匹配聚集索引比非聚集索引有更快的访问速度。)
符合索引:在创建索引时将多个列组合作为索引,这种索引称为复合索引(只有用到复合索引的第一列或整个复合索引列作为检索条件时才会用到复合索引)
全文索引:全文索引是一种特殊类型的基于标记的功能性索引,由SQL Server中全文索引服务创建和维护
创建索引的语法
create 【unique】 【clustered | nonclustered】 index index_name
on table_name (column_name)[,column_name]……)
【with fillfactor=x】
其中:
unique:指定唯一索引
clustered、nonclustered:指定是聚集索引还是非聚集索引
fillfactor:表示填充因子,指定0~100的值,如指定填充因子的值为80,表示每个叶级页上将有20%的空间保留为空,以便随着在基础表中添加数据而为扩展索引提供空间
删除索引的语法
drop index table_name.index_name
注意:删除表示将删除表中的所有索引
如果要删除所有索引应先删除非聚集索引,再删除聚集索引。
对索引的一些个人理解如有异议请提醒改正
索引实际上就是查询数据的一种依据方法。索引类型的不同在查询数据是所依据的方法也就不同。不同的索引类型之间并没有太过紧密(直接)的关联!!!