資料查詢 DQL

 


資料查詢語言: DQL(Data Query Language) 的指令及附帶指令是負責進行資料查詢,不會對資料本身或資料表結構進行修改的。查詢是利 用來資料表中的欄位關係搜尋資料, 查詢結果則依據查詢條件中要求的欄位顯示。DQL的指令其實只有一個: SELECT ,附帶的輔助指令包括:FROM,WHERE,GROUP BY,ORDER BY...等。


範例資料庫

 

 

 

DQL只能查詢資料,不會更動任何資料。DQL其實就是「SELECT」開頭的所有命令組合,可以直接和「SELECT畫上等號。


SELECT

SELECT 是資料庫實作中是最常用到的 SQL 語句,主要是用來從資料庫取得資料,這個動作我們通常稱之為查詢 (query),資料庫依 SELECT 查詢的要求會返回一個結果資料表 (result table),我們通常稱之為資料集 (result-set)。

SELECT指令,
表示「顯示的欄位」有多個欄以 「,」分隔。

SELECT 1+1, 3*6+4
 
 

SELECT 指令通常要搭配下面介紹的相關「DQL」指令才能有效運用,通常不會像範例中直接單獨使用。



FROM

SELECT 查詢語句接上 「FROM」 指令確認查詢目標 「資料表」 ,可以將所有的資料都顯示出來。
SELECT itemCode, Description FROM MRSBASE_A 

 
  
如果我們想一次取得整張資料表裡所有的資料我們可以在 SELECT 語句裡用 * 這個特殊符號。
SELECT * FROM MRSBASE_R
 
 


WHERE

SELECT 查詢語句使用 WHERE 關鍵字搭配運算子來過濾 「符合條件」 的資料,可以使每次查詢不一定都要將表格內的資料都全部顯示。在許多時候,我們會需要選擇性地顯示資料。 舉個例子做實驗,試著找到類別為「A」的資料。要做到這一點,我們就需要用到 WHERE 這個指令。這個指令的語法如下:

SELECT itemCode, Description FROM MRSBASE_A 
WHERE itemKind = 'A'
 
  


AND

多個查詢條件時,可以使用 AND 指令同時下達多個條件。其中數值欄位可以使用「>」大於或「<」小於以及「=」等於的數學符號來做為條件。
SELECT itemCode, Description, Price FROM MRSBASE_A 
WHERE itemKind = 'A' AND Price >= 1000
 
  

反向查詢的指令「!=」表示「不等於」。

SELECT itemCode, Description, Price FROM MRSBASE_A 
WHERE itemKind != 'A' AND Price <=1000
 
  


查詢條件中的 「文字」 需要用引號或雙引號「'字串', "字串"」包住,否則會出現錯誤;另一方面,對於數值型別則不可以加上引號,否則也會出現錯誤。


LIKE

LIKE 指令搭配 WHERE 條件「模糊搜尋」資料表中的特定資料,前後「%」代表模糊字串。
SELECT itemCode, Description, Price FROM MRSBASE_A 
WHERE Description LIKE '%工程%'
 
  

LIKE 指令的反向查詢為「NOT LIKE」,表示在查詢結果條件之外的資料。

SELECT itemCode, Description, Price FROM MRSBASE_A 
WHERE Description LIKE '%工%'
 
  


ORDER BY

查詢結果排序,正向由小到大。
SELECT itemCode, Description, Price FROM MRSBASE_A 
WHERE itemKind = 'A' AND Price >= 1000 ORDER BY Price
 
  

查詢結果排序,反向由大到小則要加上「DESC」指令。

SELECT itemCode, Description, Price FROM MRSBASE_A 
WHERE itemKind = 'A' AND Price >= 1000 ORDER BY Price DESC
 
  

指令說明
SELECT DQL使用前的聲明
FROM 指定查詢資料表
WHERE 聲明有過濾條件
AND 增加過濾條件
LIKE 模糊搜尋
ORDER BY 排序

DQL中還有許多的進階用法,隨手查閱一些網站或書籍都能得到所有指令的列表。為了持續學習的興趣,讓剩下的複雜指令在實作中或進階的課程中再做介紹。

沒有留言:

張貼留言