資料庫基礎Select之All和Distinct的使用和區別?

小編準備寫篇資料庫的系列經驗,通過表格展示資料的形式,加上一些生動有趣的方法,讓大家更容易理解和掌握資料庫的知識。我們的目標時,讓學習更加簡單和有趣,好了,本期介紹的是最簡單的All和Distinct的區別。

工具/原料

Sql Server / My Sql / Oracle

方法/步驟

首先我們可以從字面的意思去理解,all的英文意思就是全部的,distinct就是不同的意思。其實這剛好是這兩個單詞的區別。

資料庫基礎Select之All和Distinct的使用和區別

其實這兩個關鍵字都是Sql對查詢結果相同行的處理方式。

其中ALL返回所有行,DISTINCT返回所有不重複行。

例子如下:我們看我們的基表(還沒有做Sql語句操作的原始表)STUDENT。

本表有5個欄位,共20行資料,其中第18行和第20行資料重複。

資料庫基礎Select之All和Distinct的使用和區別

然後用ALL查詢,查詢語句:SELECT ALL * FROM STUDENT

其中,*表示返回每一列,STUDENT是查詢的基表,查詢結果如下,所有資料都顯示了。

資料庫基礎Select之All和Distinct的使用和區別

注意:這裡的ALL是資料庫對相同行的預設處理方式,可以省略。

所以 SELECT ALL * FROM STUDENT

和 SELECT * FROM STUDENT

是等價的

資料庫基礎Select之All和Distinct的使用和區別

用distinct的處理結果如下:

SELECT DISTINCT * FROM STUDENT

資料庫基礎Select之All和Distinct的使用和區別

大家可以發現,這條重複的記錄,在查詢結果中只出現了一次。

資料庫基礎Select之All和Distinct的使用和區別

注意事項

順便說一句,Sql語言是不區分大小寫的,大家的可以根據自己的習慣而定

相關問題答案