欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL中的DISTINCT簡介、SQL DISTINCT詳解 附DISTINCT的用法、DISTINCT注意事項

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

DISTINCT簡介:

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

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

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

SELECT	DISTINCT age FROM students

2、多列去重:使用 DISTINCT 去重查詢結(jié)果中的多個列,返回滿足多列組合唯一的結(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、對表達式進行去重:DISTINCT 還可以用于對表達式進行去重,而不僅僅是列名。這允許你根據(jù)某些計算得到的結(jié)果進行去重。

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

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

SELECT COUNT(DISTINCT NAME) num FROM students

注意事項:

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

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

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

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

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

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

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

完整版代碼

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é)果中的單個列,返回唯一的值。
SELECT	DISTINCT age FROM students
# 多列去重:使用 DISTINCT 去重查詢結(jié)果中的多個列,返回滿足多列組合唯一的結(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
# 對表達式進行去重:DISTINCT 還可以用于對表達式進行去重,而不僅僅是列名。這允許你根據(jù)某些計算得到的結(jié)果進行去重。
SELECT DISTINCT ( `name` + age) result FROM students
# COUNT()統(tǒng)計
SELECT COUNT(DISTINCT NAME) num FROM students

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

相關(guān)文章

  • SQL(MSSQLSERVER)服務(wù)啟動錯誤代碼3414的解決方法

    SQL(MSSQLSERVER)服務(wù)啟動錯誤代碼3414的解決方法

    這篇文章主要介紹了SQL(MSSQLSERVER)服務(wù)啟動錯誤代碼3414的解決方法,需要的朋友可以參考下
    2016-03-03
  • SQL Server中的數(shù)據(jù)類型Text與varchar(max)有什么區(qū)別?

    SQL Server中的數(shù)據(jù)類型Text與varchar(max)有什么區(qū)別?

    在SQL Server中,處理文本數(shù)據(jù)時,我們經(jīng)常會遇到兩種數(shù)據(jù)類型:Text和varchar(max),盡管它們都可以用來存儲大量的文本數(shù)據(jù),如果可能的話,考慮將Text數(shù)據(jù)類型遷移到varchar(max)或nvarchar(max)數(shù)據(jù)類型,以利用新功能和潛在的性能優(yōu)勢
    2025-03-03
  • Sqlserver創(chuàng)建用戶并授權(quán)的實現(xiàn)步驟

    Sqlserver創(chuàng)建用戶并授權(quán)的實現(xiàn)步驟

    這篇文章主要介紹了Sqlserver創(chuàng)建用戶并授權(quán)的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • MSSQL 監(jiān)控數(shù)據(jù)/日志文件增長實現(xiàn)方法

    MSSQL 監(jiān)控數(shù)據(jù)/日志文件增長實現(xiàn)方法

    今天就想實現(xiàn)這么一個功能,每天(頻率可以調(diào)整)去收集一下數(shù)據(jù)文件的信息,放到一個表里面,這樣方便我們分析數(shù)據(jù)文件的增長演變例程,甚至你可以將數(shù)據(jù)文件的增長幅度和業(yè)務(wù)變化關(guān)聯(lián)起來分析
    2013-08-08
  • SQL中如何添加數(shù)據(jù)幾種方法詳細解說

    SQL中如何添加數(shù)據(jù)幾種方法詳細解說

    數(shù)據(jù)插入操作是SQL的基礎(chǔ)操作之一,下面這篇文章主要給大家介紹了關(guān)于SQL中如何添加數(shù)據(jù)的幾種方法,文中通過圖文以及代碼示例介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • SQLServer中Partition By及row_number 函數(shù)使用詳解

    SQLServer中Partition By及row_number 函數(shù)使用詳解

    partition by關(guān)鍵字是分析性函數(shù)的一部分,partition by用于給結(jié)果集分組,如果沒有指定那么它把整個結(jié)果集作為一個分組,本文給大家介紹SQLServer中Partition By及row_number 函數(shù)使用詳解,需要的朋友參考下
    2015-11-11
  • Mybatis SQL注解使用場景分析

    Mybatis SQL注解使用場景分析

    MyBatis 提供了幾種常用的注解,主要用于簡化 XML 映射文件的編寫,使得 SQL 查詢和操作可以直接在 Java 接口中定義,這篇文章主要介紹了Mybatis SQL注解使用場景,需要的朋友可以參考下
    2024-07-07
  • 顯示 Sql Server 中所有表中的信息

    顯示 Sql Server 中所有表中的信息

    顯示 Sql Server 中所有表中的信息...
    2006-12-12
  • sqlserver 模糊查詢常用方法

    sqlserver 模糊查詢常用方法

    LIKE 關(guān)鍵字搜索與指定模式匹配的字符串、日期或時間值。LIKE 關(guān)鍵字使用常規(guī)表達式包含值所要匹配的模式。模式包含要搜索的字符串,字符串中可包含四種通配符的任意組合。
    2010-09-09
  • SQL?SERVER服務(wù)器部署IP查詢方法詳解

    SQL?SERVER服務(wù)器部署IP查詢方法詳解

    這篇文章主要為大家介紹了SQL?SERVER服務(wù)器部署IP查詢示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01

最新評論