1. 程式人生 > SQL入門教學 >32 SQL 檢視

32 SQL 檢視

1. 定義

解釋:檢視是一個或多個表記錄的集合,其結構和資料是建立在其它表的查詢基礎之上的。檢視可以理解為表,它可以像表一樣操作,但是檢視不是真實存在,它只是一張虛表。

2. 前言

本小節,我們將一起學習 SQL 中的檢視

在一些場景中,有些查詢的結果集很大,且我們需要在多處複用到這些結果集;如果每次都去查詢一次,會耗費大量的時間,SQL 支援我們將這些資料集儲存為檢視,並且可以像操作表一樣去操作這些檢視。

本小節測試資料如下,請先在資料庫中執行:

DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  id int PRIMARY
KEY, username varchar(20), age int ); INSERT INTO imooc_user(id,username,age) VALUES (1,'peter',18),(2,'pedro',24),(3,'jerry',22),(4,'mike',18),(5,'tom',20);

3. 檢視的建立與刪除

檢視的資料來源於查詢。

其基礎建立語法如下:

CREATE VIEW [view_name] 
AS
SELECT [col] FROM [table_name];

檢視也可以被刪除,語法如下:

DROP VIEW [view_name];

其中view_name

表示檢視名稱,col代表欄位名稱,table_name表示資料表名稱。

3.1 例1 新建檢視

請書寫 SQL 語句,查詢 imooc_user 的所有idage欄位,並以該結果新建一個檢視。

分析:

按照檢視建立語法寫出語句即可。

語句:

CREATE VIEW user_shorcut_view 
AS
SELECT id,username FROM imooc_user;

建立成功後,結果如下:

# select * from user_shorcut_view;
+----+----------+
| id | username |
+----+----------+
| 1  | peter    |
| 2  | pedro    |
| 3  | jerry    |
| 4  | mike     |
| 5  | tom      |
+----+----------+

3.2 例2 刪除檢視

請書寫 SQL 語句,刪除user_shorcut_view檢視。

分析:

使用 Drop 指令刪除該檢視即可。

語句:

DROP VIEW user_shorcut_view;

4. 操作檢視

檢視可以像資料表一樣操作,且資料表的資料被更新後,也會同步更新到與之相關的檢視中。

4.1 例3 查詢檢視

請書寫 SQL 語句,從 user_shorcut_view 檢視中找出id2的使用者。

分析:

使用 Select 指令像查詢資料表一樣查詢檢視。

語句:

SELECT username FROM user_shorcut_view WHERE id = 2;

結果如下:

+----------+
| username |
+----------+
| pedro    |
+----------+

5. 小結

  • 檢視很大程度上可以簡化查詢操作,還可以定製資料。
  • 檢視不易建立過多,由於更新表的同時也會更新關聯的檢視,因此檢視會降低資料庫的效能。