SQL 创建、更新和删除视图的方法

2022-07-30,,,,

视图是可视化的表。

本章讲解如何创建、更新和删除视图。

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

《SQL 创建、更新和删除视图的方法.doc》

下载本文的Word格式文档,以方便收藏与打印。