1.什么是视图
在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
视图和实体表的区别就在与:是否保存了实际数据。
视图本身是一个不含任何数据的虚拟表,数据库中存放视图的定义(保存好的SELECT语句),而不存放视图对应的数据。
实体表中保存实际数据,使用实体表创建视图后,实体表中的数据发生变化,视图查询出的数据就会发生变化。从视图中读取数据时,视图会在内部执行对应的SELECT语句,并创建出一张临时表。
2.为什么要使用视图
视图的优点:简化用户操作。
视图保存的是SELECT语句,将频繁使用的查询语句保存成视图,这样就不用每次都重新写。在创建好视图后,可以将视图和其他实体表一样,在SELECT语句中进行调用。对于常用的联表查询,可将联表的结果创建为视图,后续使用联表结果时,不用重新写select语句,直接调用视图即可。
3.视图的用法
3.1 创建视图
CREATE VIEW view_name AS
SELECT column_name(s) FROM table_name WHERE condition
创建视图的语句,就是在完整的SELECT语句前,增加“CREATE VIEW 视图名 AS”,视图实际上是保存的SELECT语句。
需要设置视图的字段名时,可参考如下写法:“CREATE VIEW 视图名 (列名,列名) AS”:
CREATE VIEW view_name (v_column1,v_column2) AS
SELECT column1,column2 FROM table_name WHERE condition
3.2 使用视图
对于已经创建的视图view_name (v_column1,v_column2),可以在其他查询语句中使用。
SELECT v_column1,v_column2 FROM view_name
使用视图时,同其他实体表的用法一致。只是实体表中是真实的数据,视图代表SELECT查询语句。
使用视图的查询语句,执行时至少有两个步骤:
- 执行定义视图的SELECT语句(例如本文中创建视图的语句)
- 根据得到的结果,再执行使用视图的SELECT语句(例如本文中使用视图的语句)
3.3 删除视图
DROP VIEW view_name
3.4 更新视图
SQL CREATE OR REPLACE VIEW Syntax
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition