视图、索引
关于视图
1、概念:
视图包含一张或多张表的列所组成的数据集,该表中的记录是由一条查询语句执行后所得到查询解雇所构成的,
是一张虚拟表,储存在数据库中的查询的sql语句
2、使用原因:
1. 限制用户只能存取表内特定的列
2. 不用重新建表即可存取需要的数据
3. 减少复杂性
3、创建视图时应注意:
1、 只能在当前数据库中创建,视图中记录的数目限制由其基表中的记录数决定
2、 视图名称遵循标识符规则,对每个用户必须唯一,名称不能与该用户拥有的任何表的名称相同
3、 视图的基表或视图被删除,视图不可再使用,直到创建新的基表或视图
4、 视图中某一列为函数、数学表达式、常量或来自多张表的列名相同,则必须为列定义名称
5、 不能在视图上创建索引,不能在规则、默认、触发器的定义中引用视图
6、 通过视图查询数据时,数据修改语句不能违反数据完整性规则
4、创建视图语法:
create view 视图名 [(列名)] as begin sql语句 end
5、优点
1、 视点集中
2、 简化操作
3、 定制数据
4、 合并分割数据
5、 安全性提高
二、关于索引
1、概念:
是单独、物理的数据库结构,是数据库的一张表中所包含的值的列表(相当于目录)
2、类型:
聚集索引(列连续数据连续,物理顺序与键值逻辑(索引)顺序相同,每张表只有一个该类索引):主键索引
非聚集索引(数据不必连续,不必一致,每张表小于249个该类索引):
1、 唯一索引:不允许两行或多行具有相同的索引值
2、 复合索引:两列合在一起变成一个索引
3、 视图索引:在视图上添加索引
4、 全文索引:适用于字符串长的列
5、 XML索引:对二进制进行搜索的索引
3、创建索引语法
create [unique][clustered|nonclustered] index 索引名 on 表名(列名) [ with fillfactor=fillfactor ]
unique:指定所创建的索引是否唯一 clustered:索引的类型(聚集与非聚集) fillfactor:索引页的填充率(填充因子)指示该索引填充空间所占用的百分比
4、索引的操作
重新生成:alter index 索引名 on 表名 rebuild 重新组织:alter index 索引名 on 表名 reorganize
5、索引的优缺点
优点:提高查询效率 缺点:需占用物理空间