创建视图和索引
※视图常常被称为虚表。在视图被创建以后,你可以对视图采用如下命令:select,insert,
update,delete。
※索引是与磁盘上数据的存储方式不同的另外一种组织数据的方法。
◎使用视图
※视图并不占用数据库或表的物理空间。
※创建视图的语法如下:
CREATE VIEW
AS SELECT
FROM
※视图可以是多级的,也就是可以用视图来创建视图。但这会加大维护工作的复杂性。
1。列的重命名
注意:
当在视图中使用SQL的计算功能时,SQL会要求你给出一个虚字段的名字,这是可以理解,因为象
COUNT(*)或AVG(PAYMENT)是不能作为列名的。
2。SQL对视图的处理过程
※运行SELECT语句-->查找表-->未找到-->查找视图。
3。在SELECT语句中的使用约束
在视图的SELECT语句中:
※不能使用UNION操作。
※不能使用ORDER BY子句,但在视图中,使用GROUP BY子句可以有ORDER BY子句相同的功能。
4。在视图中修改数据
在视图创建以后,就可以用Insert,Update,Delete语句来更新,插入,删除视图中的数据。
5。在视图中修改数据的几个问题
※对于多表视图,不能使用DELETE语句。
※除非底层表的所有非空列都已经在视图中出现,否则,你不能使用Insert语句。有这个限制的原
因是SQL不知道该将什么数据插入到NOT NULL限制列中(没有在视图中出现的)。
※如果对一个归并的表格插入或更新记录,那么所有被更新的记录必须属于同一个物理表。
※如果你在创建视图时使用了DISTINCT语句,那么你就不能插入或更新这个视图中的记录。
※你不能更新视图中的虚拟列(它是用计算字段得到的)。
6。通用应用程序的视图
下面有几个视图需要完成的任务:
※提供了用户安全功能。
※可以进行单位换算。
※创建一个新的虚拟表格。
※简单的结构化复合查询。
-->视图与安全性
-->在单位换算中使用视图
-->在视图中使用简单的结构化复合查询
7。删除视图的语句
DROP VIEW view_name;
注意:该命令会使所有与DROP掉的视图相关联的视图不能正常运行。一些数据库系统甚至会将所有
与DROP掉的视图相关联的视图也删除掉。