SQL专栏
SQL数据库基础知识汇总
SQL数据库高级知识汇总
视图的定义
视图是可视化的表。
本章讲解如何创建、更新和删除视图。
CREATE VIEW 语句
在 SQL 中,视图是基于 SQL 语句的结果集的可视化表。
视图包含行和列,就像真正的表一样。视图中的字段是一个或多个数据库中真实表中的字段。
您可以添加 SQL 函数,在哪里添加,并将语句连接到视图,或者您可以呈现数据,就像数据来自单个表一样。
CREATE VIEW 语法
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
注释:视图总是显示最新数据!每当用户查询视图时,数据库引擎就使用视图的 SQL 语句重新构建数据。
CREATE VIEW 实例
我们以表Customers为例
"Customer_GD"(广东客户列表)视图从"Customers"表中列出了所有广东省的客户。这个视图使用下面的 SQL 创建:
CREATE VIEW Customer_GD AS
SELECT *
FROM Customers
WHERE 省份='广东省'
我们可以像这样查询上面这个视图:
SELECT * FROM Custom![](http://www.icode9.com/i/li/?n=4&i=images/blog/202103/10/3f424a514eeddce0d8825a955c6bed5a.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)er_GD
查看一下视图中的结果:
下面的我们以"Products"表为示例
我们选取 "Products" 表中所有价格高于平均价格的产品:
CREATE VIEW [Products_Above_Average_Price] AS
SELECT 名称,价格
FROM Products
WHERE 价格>(SELECT AVG(价格) FROM Products)
我们可以像这样查询上面这个视图:
SELECT * FROM [Products_Above_Average_Price]
结果如下:
我们也可以向视图添加条件。现在,我们仅仅需要查看 "大米" 类的价格:
SELECT * FROM [Products_Above_Average_Price]
WHERE 名称='大米'
这样就只显示大米的价格了
更新视图
您可以使用下面的语法来更新视图:
CREATE OR REPLACE VIEW 语法
ALTER VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
现在,我们希望向 "Products_Above_Average_Price" 视图添加 "规格" 列。我们将通过下列 SQL 更新视图:
ALTER VIEW [Products_Above_Average_Price] AS
SELECT 名称,价格,规格
FROM Products
WHERE 价格>(SELECT AVG(价格) FROM Products)
我们重新查询该视图:
SELECT * FROM [Products_Above_Average_Price]
结果如下:
删除视图
可以通过 DROP VIEW 命令来删除视图。
DROP VIEW 语法
DROP VIEW view_name
例如我们要删除刚才新建的视图"Products_Above_Average_Price"
DROP VIEW [Products_Above_Average_Price]
重新查询视图后就会显示该视图无效
证明视图已经不存在了。
批注
视图是数据库中一个比较重要的组成部分,在隔离实体表的前提下还可以让用户查询到需要的数据,可以起到保护底层数据的作用。同时针对不同的人群,视图也可以起到简化用户对数据的理解。