视观表(Views) 可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料。建立一个视观表的语法如下:
CREATE VIEW "VIEW_NAME" AS "SQL 语句"
"SQL 语句" 可以是任何一个我们在这个教材中有提到的SQL。来看一个例子。假设我们有以下的表格:
TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)
若要在这个表格上建立一个包括First_Name,Last_Name, 和Country 这三个栏位的视观表,我们输入:
CREATE VIEW V_Customer
AS SELECT First_Name, Last_Name, Country
FROM Customer
现在,我们有一个叫做V_Customer 的视观表:
View V_Customer
(First_Name char(50),
Last_Name char(50),
Country char(25))
我们也可以用视观表来连接两个表格。在这个情况下,使用者可以直接由一个视观表中找出她要的资讯,而不需要由两个不同的表格中去做一次连接的动作。假设有以下的两个表格:
Store_Information 表格
store_name sales date
Los Angeles $1500 jan-05-1999
San Francisco $300 jan-08-1999
Boston $700 jan-08-1999
Geography 表格
region_name store_name
East Boston
East New York
West Los Angeles
West San Diego
我们可以用以下的指令来建一个包括每个地区(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
上一篇:影响数据库系统性能的要素有哪些
下一篇:Java中顺序栈的实现原理是什么