iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0

檢視表 ( View ) 可以說是一個「類似於資料表 ( Table ) 」的東西,不過最大的差異在於檢視表僅儲存 SELECT 敘述句。因為檢視表本身並沒有「建立新資料表」的行為,當資料量大時,可以節省多餘的資料表數量來節省空間。同時,把經常使用的 SELECT 敘述句用 View 的方式先留存下來,這樣一來也方便日後取用、並根據對應資料表中的最新內容作更新。
簡言之,View 可以想成一個「虛擬的資料表」,特性是用於檢視用非常方便。

建立方式

CREATE VIEW <viewName> (<fieldName1>,<fieldName2>......)
AS 
<SELECT Statement>

以先前建立的 Product 資料表,若要建立一個商品類別統計的 View ,那就會寫成如下:

/*建立名為 「categorySum」的 View*/
CREATE VIEW categorySum (name, countNum)
AS
SELECT category, COUNT(*)
FROM Product
GROUP BY category;
/*呼叫 categorySum*/
SELECT name, countNum FROM categorySum;

Day26Result1
不過要注意的地方是, View 如果搭配 ORDER BY 使用時,依據資料庫的不同,有時候會出現錯誤。

刪除方式

直接使用 DROP VIEW 語法就可以了。

DROP VIEW <viewName>

更新資料

本質上並不建議使用 View 來更新原本資料表的內容,因為有著諸多限制。除非你可以確定在對 VIEW 中進行操作時,對應的資料表僅找的到唯一筆資料。
若你在建立 VIEW 時有使用到以下函式如:SUM, MIN, MAX, COUNT, GROUP BY, HAVING,......等,那麼是沒辦法使用 VIEW 作更新原本資料表內容的。

查看檢視表 (View) 定義

SHOW TABLE STATUS LIKE <viewName>;

Day26Result2


上一篇
Day25 - 刪除資料
下一篇
Day27 - 子查詢
系列文
SQL 30天手把手入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言