视图是可视化的表。

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


SQL CREATE VIEW 语句

在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个database中的真实的表中的字段。

阁下可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

SQL CREATE VIEW 语法

CREATE VIEW view_name AS
    
    SELECT column_name(s)
    
    FROM table_name
    
    WHERE condition

**注释:**视图总是显示最新的数据!每当用户查询视图时,database引擎通过使用视图的 SQL 语句重建数据。


SQL CREATE VIEW 实例

样本database Northwind 拥有一些被默认install 的视图。

视图 “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 样本database的另一个视图会选取 “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 样本database的另一个视图会计算在 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

本专栏所有文章

第1章 SQL 教程

第2章 SQL 简介教程

第3章 SQL 语法教程

第4章 SQL SELECT教程

第5章 SQL SELECT DISTINCT教程

第6章 SQL WHERE教程

第7章 SQL AND & OR教程

第8章 SQL ORDER BY教程


第9章 SQL INSERT INTO教程


第10章 SQL UPDATE教程

第11章 SQL DELETE教程

第12章 SQL SELECT TOP教程

第13章 SQL LIKE教程

第14章 SQL 通配符教程

第15章 SQL IN教程

第16章 SQL BETWEEN教程

第17章 SQL 别名教程


第18章 SQL 连接(JOIN)教程

第19章 SQL INNER JOIN教程


第20章 SQL LEFT JOIN教程

第21章 SQL RIGHT JOIN教程

第22章 SQL FULL JOIN教程

第23章 SQL UNION教程

第24章 SQL SELECT INTO教程

第25章 SQL INSERT INTO SELECT教程

第26章 SQL CREATE DATABASE教程

第27章 SQL CREATE TABLE教程

第28章 SQL 约束教程

第29章 SQL NOT NULL教程

第30章 SQL UNIQUE教程

第31章 SQL PRIMARY KEY教程

第32章 SQL FOREIGN KEY教程

第33章 SQL CHECK教程

第34章 SQL DEFAULT教程

第35章 SQL CREATE INDEX教程

第36章 SQL DROP教程


第37章 SQL ALTER教程

第38章 SQL Auto Increment教程

第39章 SQL 视图教程

第40章 SQL 日期教程

第41章 SQL NULL 值教程

第42章 SQL NULL 函数教程

第43章 SQL 通用数据类型教程

第44章 SQL DB 数据类型教程

第45章 SQL 函数教程

第46章 SQL AVG()教程

第47章 SQL COUNT()教程

第48章 SQL FIRST()教程

第49章 SQL LAST()教程

第50章 SQL MAX()教程

第51章 SQL MIN()教程

第52章 SQL SUM()教程

第53章 SQL GROUP BY教程

第54章 SQL HAVING教程

第55章 SQL EXISTS教程

第56章 SQL UCASE()教程

第57章 SQL LCASE()教程

第58章 SQL MID()教程

第59章 SQL LEN()教程

第60章 SQL ROUND()教程

第61章 SQL NOW()教程

第62章 SQL FORMAT()教程

第63章 SQL 快速参考教程

第64章 SQL 主机教程


第65章 SQL 总结教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:

  • 你可以疑心星星是火把;你可以疑心太阳会移转;你可以疑心真理是慌话;可是我的爱永没有改变。
  • 读书不要贪多,而是要多加思考,这样的读书使我获益不少。
  • 心是个无形的容器,可以只装一滴水,也可以容纳无边无际的大海,正如小肚鸡肠与海量的差异。海量的人不一定都能成就一番伟业,但他们的人生一定充满着光明和快乐;而小肚鸡肠的人不仅成就不了什么大事业,他们的人生肯定会烦恼重重。
  • 当工作累的时候,告诉自己,要梳理、沉淀面向阳光,不见阴霾。
  • 我从来不屑于做对的事情,在我年轻的时候,有勇气的时候。年轻时并不知道自己要过什么样的生活,但一直清楚地知道我不要过什么样的生活。那些能预知的,经过权衡和算计的世俗生活对我毫无吸引力,我要的不是成功,而是看到生命的奇迹。