最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中的DISTINCT簡介、SQL DISTINCT詳解 附DISTINCT的用法、DISTINCT注意事項(xiàng)

 更新時(shí)間:2025年05月30日 09:57:02   作者:m0_74823892  
DISTINCT 是 SQL 中用來返回唯一不重復(fù)結(jié)果集的關(guān)鍵字,它通常用于 SELECT 語句中,可以指定一個(gè)或多個(gè)列進(jìn)行去重,并返回唯一的結(jié)果,這篇文章給大家介紹SQL中的DISTINCT簡介、SQL DISTINCT詳解 附DISTINCT的用法、DISTINCT注意事項(xiàng),感興趣的朋友一起看看吧

DISTINCT簡介:

DISTINCT 是 SQL 中用來返回唯一不重復(fù)結(jié)果集的關(guān)鍵字。它通常用于 SELECT 語句中,可以指定一個(gè)或多個(gè)列進(jìn)行去重,并返回唯一的結(jié)果。當(dāng)你在使用 SELECT 查詢數(shù)據(jù)時(shí),可能會(huì)得到包含重復(fù)行的結(jié)果集。為了去除這些重復(fù)行,你可以使用 DISTINCT 關(guān)鍵字來獲取唯一的記錄。

表中插入的原始數(shù)據(jù):

1、單列去重:單列去重:使用 DISTINCT 去重查詢結(jié)果中的單個(gè)列,返回唯一的值。

SELECT	DISTINCT age FROM students

2、多列去重:使用 DISTINCT 去重查詢結(jié)果中的多個(gè)列,返回滿足多列組合唯一的結(jié)果。

SELECTDISTINCT NAME,age,score FROM students

3、結(jié)合其他關(guān)鍵字:DISTINCT 可以與其他 SQL 關(guān)鍵字結(jié)合使用,如 ORDER BY、WHERE 和 GROUP BY 等

SELECT	DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT	DISTINCT NAME ,age,score FROM students GROUP BY NAME

4、對(duì)表達(dá)式進(jìn)行去重:DISTINCT 還可以用于對(duì)表達(dá)式進(jìn)行去重,而不僅僅是列名。這允許你根據(jù)某些計(jì)算得到的結(jié)果進(jìn)行去重。

SELECT DISTINCT ( `name` + age) result FROM students

5、COUNT()統(tǒng)計(jì)

SELECT COUNT(DISTINCT NAME) num FROM students

注意事項(xiàng):

1、distinct 必須放在字段的開頭,即放在第一個(gè)參數(shù)的位置。

2、只能在select語句中使用,不能在insert、delete、update中使用。

3、distinct表示對(duì)后面的所有參數(shù)的拼接 取 不重復(fù)的記錄。

4、distinct 忽略 NULL 值:distinct 關(guān)鍵字默認(rèn)會(huì)忽略 NULL 值,即將 NULL 視為相同的值。如果你希望包括 NULL 值在去重結(jié)果中,可以使用 IS NULL 或 IS NOT NULL 進(jìn)行過濾。

5、DISTINCT 基于所有選擇的列:DISTINCT 關(guān)鍵字基于選擇的所有列來進(jìn)行去重。如果你只想根據(jù)部分列進(jìn)行去重,可以使用子查詢或者窗口函數(shù)等技術(shù)來實(shí)現(xiàn)。

6、DISTINCT 的性能消耗:DISTINCT 操作可能會(huì)對(duì)查詢的性能產(chǎn)生一定的影響,特別是在處理大量數(shù)據(jù)時(shí)。因?yàn)樗枰獙?duì)結(jié)果集進(jìn)行排序和比較以去除重復(fù)行。如果性能是一個(gè)關(guān)鍵問題,可以考慮其他優(yōu)化方法,例如使用索引或者合理設(shè)計(jì)查詢。

7、結(jié)果集順序不保證:使用 DISTINCT 關(guān)鍵字后,結(jié)果集的順序可能會(huì)發(fā)生變化,因?yàn)閿?shù)據(jù)庫系統(tǒng)通常會(huì)對(duì)結(jié)果進(jìn)行重新排列以去除重復(fù)行。如果需要特定的結(jié)果排序,可以使用 ORDER BY 子句進(jìn)行排序。

完整版代碼

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    NAME VARCHAR(50),
    age INT,
    score DECIMAL(5, 2)
);
INSERT INTO students (NAME, age, score) VALUES
('Alice', 20, 85.5),
('Bob', 22, 76.3),
('Charlie', 21, 92.0),
('Alice', 20, 85.5),
('David', 23, 68.9);
# 原始數(shù)據(jù)
SELECT	* FROM students
# 單列去重:使用 DISTINCT 去重查詢結(jié)果中的單個(gè)列,返回唯一的值。
SELECT	DISTINCT age FROM students
# 多列去重:使用 DISTINCT 去重查詢結(jié)果中的多個(gè)列,返回滿足多列組合唯一的結(jié)果。
SELECT	DISTINCT NAME,age,score FROM students
# 結(jié)合其他關(guān)鍵字:DISTINCT 可以與其他 SQL 關(guān)鍵字結(jié)合使用,如 ORDER BY、WHERE 和 GROUP BY 等
SELECT	DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT	DISTINCT NAME ,age,score FROM students GROUP BY NAME
# 對(duì)表達(dá)式進(jìn)行去重:DISTINCT 還可以用于對(duì)表達(dá)式進(jìn)行去重,而不僅僅是列名。這允許你根據(jù)某些計(jì)算得到的結(jié)果進(jìn)行去重。
SELECT DISTINCT ( `name` + age) result FROM students
# COUNT()統(tǒng)計(jì)
SELECT COUNT(DISTINCT NAME) num FROM students

到此這篇關(guān)于SQL中的DISTINCT簡介、SQL DISTINCT詳解 附DISTINCT的用法、DISTINCT注意事項(xiàng)的文章就介紹到這了,更多相關(guān)sql distinct用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

梅州市| 桐城市| 阳朔县| 梧州市| 博湖县| 泰州市| 通海县| 丰镇市| 乐平市| 濉溪县| 昌图县| 台前县| 曲松县| 子洲县| 沙河市| 岱山县| 遂溪县| 剑阁县| 香格里拉县| 弥勒县| 宣威市| 邻水| 射洪县| 永嘉县| 富阳市| 静宁县| 南郑县| 贺州市| 绥宁县| 兖州市| 湘阴县| 彭水| 昂仁县| 商都县| 郑州市| 乌拉特中旗| 武功县| 龙州县| 福鼎市| 涪陵区| 东乌珠穆沁旗|