小編準備寫篇資料庫的系列經驗,通過表格展示資料的形式,加上一些生動有趣的方法,讓大家更容易理解和掌握資料庫的知識。我們的目標時,讓學習更加簡單和有趣,好了,本期介紹的是最簡單的All和Distinct的區別。
工具/原料
Sql Server / My Sql / Oracle
方法/步驟
首先我們可以從字面的意思去理解,all的英文意思就是全部的,distinct就是不同的意思。其實這剛好是這兩個單詞的區別。
其實這兩個關鍵字都是Sql對查詢結果相同行的處理方式。
其中ALL返回所有行,DISTINCT返回所有不重複行。
例子如下:我們看我們的基表(還沒有做Sql語句操作的原始表)STUDENT。
本表有5個欄位,共20行資料,其中第18行和第20行資料重複。
然後用ALL查詢,查詢語句:SELECT ALL * FROM STUDENT
其中,*表示返回每一列,STUDENT是查詢的基表,查詢結果如下,所有資料都顯示了。
注意:這裡的ALL是資料庫對相同行的預設處理方式,可以省略。
所以 SELECT ALL * FROM STUDENT
和 SELECT * FROM STUDENT
是等價的
用distinct的處理結果如下:
SELECT DISTINCT * FROM STUDENT
大家可以發現,這條重複的記錄,在查詢結果中只出現了一次。
注意事項
順便說一句,Sql語言是不區分大小寫的,大家的可以根據自己的習慣而定