SQL 创建、更新和删除视图的方法
视图是可视化的表。
本章讲解如何创建、更新和删除视图。
sql create view 语句
在 sql 中,视图是基于 sql 语句的结果集的可视化的表。
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
您可以向视图添加 sql 函数、where 以及 join 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。
sql create view 语法
create view view_name as select column_name(s) from table_name where condition
注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 sql 语句重建数据。
sql create view 创建实例
样本数据库 northwind 拥有一些被默认安装的视图。
视图 "current product list" 会从 "products" 表列出所有正在使用的产品(未停产的产品)。这个视图使用下面的 sql 创建:
create view [current product list] as select productid,productname from products where discontinued=no
我们可以像这样查询上面这个视图:
select * from [current product list]
northwind 样本数据库的另一个视图会选取 "products" 表中所有单位价格高于平均单位价格的产品:
create view [products above average price] as select productname,unitprice from products where unitprice>(select avg(unitprice) from products)
我们可以像这样查询上面这个视图:
select * from [products above average price]
northwind 样本数据库的另一个视图会计算在 1997 年每个种类的销售总数。请注意,这个视图会从另一个名为 "product sales for 1997" 的视图那里选取数据:
create view [category sales for 1997] as select distinct categoryname,sum(productsales) as categorysales from [product sales for 1997] group by categoryname
我们可以像这样查询上面这个视图:
select * from [category sales for 1997]
我们也可以向查询添加条件。现在,我们仅仅需要查看 "beverages" 类的销售总数:
select * from [category sales for 1997] where categoryname='beverages'
sql 更新视图
您可以使用下面的语法来更新视图:
sql create or replace view 语法
create or replace view view_name as select column_name(s) from table_name where condition
现在,我们希望向 "current product list" 视图添加 "category" 列。我们将通过下列 sql 更新视图:
create view [current product list] as select productid,productname,category from products where discontinued=no
sql server
alter view [ schema_name . ] view_name [ ( column [ ,...n ] ) ] [ with <view_attribute> [ ,...n ] ] as select_statement [ with check option ] [ ; ] <view_attribute> ::= { [ encryption ] [ schemabinding ] [ view_metadata ] }
- schema_name: 视图所属架构的名称。
- view_name: 要更改的视图。
- column: 将成为指定视图的一部分的一个或多个列的名称(以逗号分隔)。
sql 撤销视图
您可以通过 drop view 命令来删除视图。
sql drop view 语法
drop view view_name