视图概述
视图的基本知识
概念:
视图是由基于一个或多个表(或视图)上的一个查询所生成的虚拟表,其中不包含任何数据,只是保存着该查询定义。对视图的操作与对表的操作一样,可以对其进行查询,修改(有一定的限制)和删除。
作用
简化用户操作,使用户关注自己感兴趣的数据
优点:
1.方便用户使用
2.提供一定程序的数据安全性
创建视图
视图名后面的属性列可全部省略;隐含该视图子查询中select子句目标列中的字段组成。
下列情况属性列不能够省略
1.子查询目标列有聚集函数或列表式
2.子查询为多表连接,并且选出几个同名列作为视图的字段。
3.需要在视图中为某个列使用别名
创建性别为“女生”的学生视图,并要求对视图进行更新时保证该视图只有性别为“女生”的学生
源码:
create view is_student
as
select*from Student
where sex=‘女’
with check option
视图的删除
视图的更新
系统对视图的更新通常有如下限制:
由多表导出的视图不允许更新
若视图的属性列来自表达式或常数,则不允许执行INSERT和UPDATE操作,但允许执行DELETE操作
定义中用到GROUP BY子句或聚集函数的视图不允许更新
建立在一个不允许更新上的视图不允许更新
一般都只允许对行列子集视图进行更新
基本表中没在视图中出现的属性无NOT NULL约束时,才允许进行插入操作
视图的作用
视图提供了一个简化用户操作的快捷方法
索引的概念
索引是建立在关系的某一属性(组)上的一种数据结构,针对某个属性建立索引,就是根据此属性值将记录进行逻辑排列
索引的作用
索引提供了在该属性(组)上快速查找具有某个特定值的元组的方法
索引文件所占磁盘空间通常比数据文件的少
索引记录是有序的,可以使用二分查找法来查找索引键值所在记录
索引的分类
聚集索引(聚簇索引,Clusered Index):数据文件中数据记录的物理顺序与索引记录的排列顺序在索引键上保持一致
非聚集索引(非聚集所以,Unclustered Index):数据文件中数据记录不按索引键值物理排序
在数据库中,视图可以提供数据的安全性
可以根据需要在基本表上建立一个或多个索引,从而提高系统的查询效率
授权控制
自主访问控制
自主访问控制就是用户自主控制对数据库对象的操作权限