视图
视图是什么
对于代码而言,视图就是一串SELECT语句。然而在使用上,数据表没有什么区别。
用一般的的编程语言来理解的话,就是一个有返回值的函数。只不过它返回的是一个临时的数据表罢了。
所以它可以随着数据表的更新而更新。
创建视图
使用CREATE VIEW 视图名 (列名清单) AS SELECT语句
语句来创建视图。
可以支持在一个视图的基础上创建视图,这样子的视图叫做多重试图,不过不推荐这样做,原因是影响SQL的性能。
其中的几乎可以使用所有的SELECT语句,但是要注意的是不能够使用ORDER BY
语句,原因是视图和数据表一样,都是无序的。
视图的更新
视图和数据表一样都支持更新操作,INSERT
DELETE
UPDATE
,但是并非所有的视图都可以更新。
总结出来的规律是,视图的更新源数据表应该能够同样呼应(正如试图会随着源数据表的更新而更新一样)。
所以能够进行更新操作的视图应具有以下的条件:
- SELECT子句中未使用DISTINCT
- FROM子句中只有一张表
- 未使用GROUP BY子句
- 未使用HAVING子句
同时由于元数据表存在着各种各样的约束条件,所以要注意(可能会更新不了)
视图的删除
- 删除普通视图
DROP VIEW 视图名
- 删除作为多重视图基础的视图
DROP VIEW 视图名 CASCADE
该语句同时会删除引用该视图的多重视图