第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

SQL 視圖

1. 定義

慕課解釋:視圖是一個(gè)或多個(gè)表記錄的集合,其結(jié)構(gòu)和數(shù)據(jù)是建立在其它表的查詢基礎(chǔ)之上的。視圖可以理解為表,它可以像表一樣操作,但是視圖不是真實(shí)存在,它只是一張?zhí)摫怼?/p>

2. 前言

本小節(jié),我們將一起學(xué)習(xí) SQL 中的視圖。

在一些場景中,有些查詢的結(jié)果集很大,且我們需要在多處復(fù)用到這些結(jié)果集;如果每次都去查詢一次,會(huì)耗費(fèi)大量的時(shí)間,SQL 支持我們將這些數(shù)據(jù)集保存為視圖,并且可以像操作表一樣去操作這些視圖。

本小節(jié)測(cè)試數(shù)據(jù)如下,請(qǐng)先在數(shù)據(jù)庫中執(zhí)行:

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. 視圖的創(chuàng)建與刪除

視圖的數(shù)據(jù)來源于查詢。

其基礎(chǔ)創(chuàng)建語法如下:

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

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

DROP VIEW [view_name];

其中 view_name 表示視圖名稱,col 代表字段名稱,table_name 表示數(shù)據(jù)表名稱。

3.1 例 1 新建視圖

請(qǐng)書寫 SQL 語句,查詢 imooc_user 的所有 idage 字段,并以該結(jié)果新建一個(gè)視圖。

分析:

按照視圖創(chuàng)建語法寫出語句即可。

語句:

CREATE VIEW user_shorcut_view 
AS
SELECT id,age FROM imooc_user;

創(chuàng)建成功后,結(jié)果如下:

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

3.2 例 2 刪除視圖

請(qǐng)書寫 SQL 語句,刪除 user_shorcut_view 視圖。

分析:

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

語句:

DROP VIEW user_shorcut_view;

4. 操作視圖

視圖可以像數(shù)據(jù)表一樣操作,且數(shù)據(jù)表的數(shù)據(jù)被更新后,也會(huì)同步更新到與之相關(guān)的視圖中。

4.1 例 3 查詢視圖

請(qǐng)書寫 SQL 語句,從 user_shorcut_view 視圖中找出 id2 的用戶。

分析:

使用 Select 指令像查詢數(shù)據(jù)表一樣查詢視圖。

語句:

SELECT username FROM user_shorcut_view WHERE id = 2;

結(jié)果如下:

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

5. 小結(jié)

  • 視圖很大程度上可以簡化查詢操作,還可以定制數(shù)據(jù)。
  • 視圖不易創(chuàng)建過多,由于更新表的同時(shí)也會(huì)更新關(guān)聯(lián)的視圖,因此視圖會(huì)降低數(shù)據(jù)庫的性能。