视图 (View) 可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存数据,而视图是建立在表格之上的一个架构,它本身并不实际储存数据。下面有更详细的解释:
什么是视图?
在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
注释:数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。
SQL CREATE VIEW 语法
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
或
CREATE VIEW "VIEW_NAME" AS "SQL 语句";
注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。
示例
"SQL 语句" 可以是任何一个我们在这个教材中有提到的 SQL。
来看一个例子。假设我们有以下的表格:
若要在这个表格上建立一个包括 First_Name, Last_Name, 和 Country 这三个列的视图,我们就打入,
CREATE VIEW V_Customer AS SELECT First_Name, Last_Name, Country FROM Customer;
现在,我们就有一个叫做 V_Customer 的视图:
V_Customer 视图
列名 | 数据类型 |
First_Name | char(50) |
Last_Name | char(50) |
Country | char(25) |
我们也可以用视图来连接两个表格。在这个情况下,使用者就可以直接由一个视图中找出她要的资讯数据,而不需要由两个不同的表格中去做一次连接的动作。假设有以下的两个表格:
我们就可以用以下的指令来建一个包括每个地区 (Region) 销售额 (Sales) 的视图:
CREATE VIEW V_REGION_SALES AS SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES FROM Geography A1, Store_Information A2 WHERE A1.Store_Name = A2.Store_Name GROUP BY A1.Region_Name;
这就给我们有一个名为 V_REGION_SALES 的视图。这个视图包含不同地区的销售哦。如果我们要从这个视图中获取数据,我们就打入,
SELECT * FROM V_REGION_SALES;
结果
REGION SALES East 700 West 2050
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程