SQL View-視觀表 (View)-不用每次查詢
SQL View-視觀表 (View)-不用每次查詢
資料來源:http://www.1keydata.com/tw/sql/sql-create-view.html
視觀表 (View) 可以被當作是虛擬表格。它跟表格的不同是,表格中有實際儲存資料,而視觀表是建立在表格之上的一個架構,它本身並不實際儲存資料。
建立一個視觀表的語法如下:
CREATE VIEW “視觀表名”
AS “SQL SELECT 語句”;
AS “SQL SELECT 語句”;
“SQL SELECT 語句” 可以是任何一個由 SELECT 開頭的語句。
來看一個例子。假設我們有以下的表格:
Customer 表格
欄位名稱 | 資料種類 |
First_Name | char(50) |
Last_Name | char(50) |
Address | char(50) |
City | char(50) |
Country | char(25) |
Birth_Date | datetime |
若要在這個表格上建立一個包括 First_Name, Last_Name, 和 Country 這三個欄位的視觀表,我們就打入,
CREATE VIEW V_Customer
AS SELECT First_Name, Last_Name, Country
FROM 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) |
我們也可以用視觀表來連接兩個表格。在這個情況下,使用者就可以直接由一個視觀表中找出她要的資訊,而不需要由兩個不同的表格中去做一次連接的動作。假設有以下的兩個表格:
Store_Information 表格
Store_Name | Sales | Txn_Date |
Los Angeles | 1500 | 05-Jan-1999 |
San Diego | 250 | 07-Jan-1999 |
Los Angeles | 300 | 08-Jan-1999 |
Boston | 700 | 08-Jan-1999 |
Geography 表格
Region_Name | Store_Name |
East | Boston |
East | New York |
West | Los Angeles |
West | San Diego |
我們就可以用以下的指令來建一個包括每個地區 (Region_Name) 銷售額 (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;
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 |