视观表 (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
|
$1,500
|
Jan-05-1999
|
San Diego
|
$250
|
Jan-07-1999
|
Los Angeles
|
$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 |
参考:
阅读(867) | 评论(0) | 转发(0) |