视图
从SQL来看,视图和表是相同的,区别在于表中存储的是实际的数据,视图中保存的是SELECT语句(视图本身不存储数据)。可以将频繁使用的SELECT语句保存成视图,这样可以节省空间,且不用每次都重新书写。
创建视图
CREATE VIEW 视图名称(<视图列名1>, <视图列名2>, …)
AS
<SELECT语句>
/*
SELECT语句中的列排列顺序和视图中的列排列顺序相同;
可使用除ORDER BY外的任意SELECT语句
*/
可以在视图的基础上创建视图,但应尽量避免,因会降低性能。且定义视图时不要使用ORDER BY子句。
使用视图
SELECT <表达式1>, <表达式2>, …
FROM <视图名称>;
/*
在FROM子句中使用视图的查询,通常有以下两个步骤:
1.首先执行定义视图的SELECT语句
2.根据得到的结果,再执行在FROM子句中使用视图的SELECT语句
*/
如果定义视图的SELECT语句能够满足某些条件,则视图就可以被更新(INSERT、DELETE、UPDATE),如
- SELECT子句中未使用DISTINCT;
- FROM子句中只有一张表;
- 未使用GROUP BY子句;
- 未使用HAVING子句;
删除视图
DROP VIEW 视图名称(<视图列名1>, <视图列名2>, …);
删除以视图为基础创建出来的多重视图
DROP VIEW <视图名称> CASCADE;
参考资料
《SQL基础教程》(第2版)[日] MICK著;孙淼,罗勇译