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

SQL Distinct

1. 定義

維基百科:關鍵字Distinct用于返回唯一不同的值。

慕課解釋:有時候,查詢結(jié)果中會包含重復的信息,如年齡,很多人是同齡人,而我們只需要不同年齡的數(shù)據(jù),加上 Distinct 關鍵字我們就可以獲得不重復的數(shù)據(jù)。

2. 前言

本小節(jié),我們將一起學習 SQL Distinct

Distinct 關鍵字既可以用來修飾單字段,也可以用來修飾多字段;在小節(jié)中,我們將分別介紹這兩種情況的使用。

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

DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  id int,
  username varchar(20),
  age int
);
INSERT INTO imooc_user(id,username,age) 
VALUES(1,'pedro',23), (2,'mike',18), (3,'jerry',23), (4,'pedro',23);

3. 單字段查詢

Distinct 多用于單字段查詢?nèi)ブ亍?/p>

語法如下:

SELECT DISTINCT [col] FROM [table_name];

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

3.1 例1 查詢年齡

請書寫 SQL 語句,查詢得到 imooc_user 表中所有的年齡值,且除去重復年齡。

分析:

對于存在重復年齡的用戶,使用 Select 搭配 Distinct 即可。

語句

SELECT DISTINCT age from imooc_user;

結(jié)果如下:

+-----+
| age |
+-----+
| 23  |
| 18  |
+-----+

在表中,pedro 與 jerry 二人的年齡相同,使用 Distinct 后,結(jié)果集中只有一個 23 。

如若上面語句沒有使用 Distinct :

SELECT age from imooc_user;

結(jié)果如下:

+-----+
| age |
+-----+
| 23  |
| 18  |
| 23  |
| 23  |
+-----+

對比發(fā)現(xiàn),Distinct 確實能夠很好的完成去重工作。

4. 多字段查詢

Distinct 也可用于多字段查詢?nèi)ブ亍?/p>

語法如下:

SELECT DISTINCT [col1],[col2] FROM [table_name];

其中col表示字段名,table_name表示數(shù)據(jù)表名稱,數(shù)字1,2表示多個字段。

4.1 例2 查詢用戶名和年齡

請書寫 SQL 語句,查詢得到 imooc_user 中的所有用戶名和年齡,要求結(jié)果不允許重復。

分析:

按照上述語法寫出查詢語句即可。

語句

SELECT DISTINCT username,age from imooc_user;

結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 23  |
| mike     | 18  |
| jerry    | 23  |
+----------+-----+

在表中,有兩個名為 pedro 的用戶,他們年齡也一致,在 Distinct 的作用下只返回了一個 pedro。

5. 小結(jié)

  • Distinct 非常實用,很多時候都會存在字段重復的問題,如同齡同班級,同地區(qū)等等。
  • Distinct 是要付出代價的,去掉重復值帶來的時間損耗比查詢本身更耗時,因此也請慎用。