32 SQL 檢視
阿新 • • 發佈:2020-06-25
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 的所有id
和age
欄位,並以該結果新建一個檢視。
分析:
按照檢視建立語法寫出語句即可。
語句:
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 檢視中找出id
為2
的使用者。
分析:
使用 Select 指令像查詢資料表一樣查詢檢視。
語句:
SELECT username FROM user_shorcut_view WHERE id = 2;
結果如下:
+----------+
| username |
+----------+
| pedro |
+----------+
5. 小結
- 檢視很大程度上可以簡化查詢操作,還可以定製資料。
- 檢視不易建立過多,由於更新表的同時也會更新關聯的檢視,因此檢視會
降低
資料庫的效能。