SELECT語句使用的一般語法形式_第1頁
SELECT語句使用的一般語法形式_第2頁
SELECT語句使用的一般語法形式_第3頁
免費預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、SELECT語句使用的一般語法形式SELECT語句的一般形式如下:SELECT select_listFROM sourceWHERE condition(s)GROUP BY expressionHAVING conditionORDER BY expression指令的第一行告訴sql處理器這是一個希望從某數(shù)據(jù)庫中檢索信息的SELECT語句。select_list參數(shù)指定了我們想要查詢信息的類型。第二行的FROM子句定義了我們要查詢的數(shù)據(jù)庫表的名稱,而WHERE子句則使我們能夠限定返回結(jié)果集的數(shù)據(jù)記錄所要滿足的特殊條件(condition(s)。最后三個子句是該語句的一些高級特性,超岀了本

2、文內(nèi)容范疇,可參考 IT專家網(wǎng)上其他關(guān)于SQL語言的的資料。實例是學(xué)習(xí)sql語言的最佳途徑。下面我們通過一個實例來看看數(shù)據(jù)庫查詢的過程,本文利用一個虛構(gòu)的ABC公司人力資源數(shù)據(jù)庫作為實例來詳細的說明所有的相關(guān)查詢。數(shù)據(jù)庫全表如下:EmployeeIDLastNameFirstNameSalaryReportsTo1思迷喬3200022欣碧蘇45000NULL3康杜湯2950024瓊斯白3500025艾倫畢1725046雷乂1950047莊生柯210003查詢?nèi)頂?shù)據(jù)假設(shè)ABC公司的人力資源主管收到了一份包括了每個公司雇員的工資和上下級關(guān)系的月度報表。 這份 報表是利用SELECT語句的最簡單形

3、式生成的。它只是檢索了包含在一個數(shù)據(jù)表里的所有信息, 包括每一 行每一列。返回此結(jié)果的查詢語法如下:SELECT *FROM employees可以看到這里使用的語法相當(dāng)簡潔明了。select_list參數(shù)中出現(xiàn)的星號(*)是一個通配符,用以告知數(shù)據(jù)庫我們想從用FROM子句定義的雇員表中獲取所有的列的數(shù)據(jù)。如果想獲取數(shù)據(jù)庫中所有的信息,并不需要用WHERE子句來限制選擇的表行。執(zhí)行查詢結(jié)果如下:EmployeeIDLastNameFirstNameSalaryReportsTo1思迷喬3200022欣碧蘇45000NULL3康杜湯2950024瓊斯白3500025艾倫畢1725046雷乂195

4、0047莊生柯210003在下一節(jié)中,我們將會涉及更強大的查詢功能,使你能夠限定從數(shù)據(jù)庫中查詢到的數(shù)據(jù)。第二節(jié):限定查詢結(jié)果在第一節(jié)中,我們對利用SELECT語句以及執(zhí)行一個簡單的檢索來獲取一個表內(nèi)所有信息的語法結(jié)構(gòu) 有了一個大概了解。本節(jié)將進一步介紹怎樣執(zhí)行限定獲取信息的查詢操作。從一個表內(nèi)查詢特定列的信息在上一個實例中,我們?yōu)槿肆Y源主管生成了一份包括ABC公司所有雇員工資和上下級關(guān)系信息的報表?,F(xiàn)在,部門內(nèi)的幾位中級經(jīng)理由于職責(zé)所需也要求獲取其中的雇員上下級關(guān)系信息。這些經(jīng)理不需要 關(guān)于工資的信息,所以我們會為他們提供一份包含數(shù)據(jù)庫中指定信息的報表,這些限定信息包括雇員姓名、雇員ID號及

5、雇員直屬上司的ID號。返回此結(jié)果的SELECT語句如下:SELECT EmployeelD, LastName, FirstName, ReportsToFROM employees這一查詢與第一節(jié)中的 SELECT語句查詢有所不同。注意星號通配符被一個列名稱組成的表達式列表 代替,這些列是要包含在查詢結(jié)果中的。岀于保護隱私的考慮,提供給中級經(jīng)理們的數(shù)據(jù)表中將省略掉工 資(Salary)列。執(zhí)行查詢結(jié)果如下:EmployeeIDLastNameFirstNameReportsTo1思迷喬22欣碧蘇NULL3康杜湯24瓊斯白25艾倫畢46雷乂47莊生柯3EmployeelDLastNameFir

6、stNameReportsTo從一個表內(nèi)查詢特定行的信息假設(shè)ABC公司的總裁蘇欣碧想要一份報表,內(nèi)容包含她所有直屬下級的詳細資料。要生成這樣一份報表,我們需要通過利用 WHERE子句來限制返回的查詢結(jié)果中出現(xiàn)的行信息。執(zhí)行以下語法:SELECT *FROM employeesWHERE ReportsTo = 2請注意為了給蘇總提供她所需要的詳細資料,星號通配符又再次出現(xiàn)在了select_list參數(shù)中。我們在一個WHERE子句加上了表達式 ReportsTo = 2,這個表達式的目的是使返回的結(jié)果限定在ReportsTo的值為2(即蘇總的員工ID號)的行。執(zhí)行上述查詢操作返回的結(jié)果如下:審閱

7、完上面這份報表后,蘇總決定要進一步把結(jié)果限定在那些工資超過30,000的雇員。我們可以在 WHERE子句中使用復(fù)合條件就可以返回想要的結(jié)果。修改后的sql查詢語法如下:SELECT *FROM employeesWHERE ReportsTo = 2 AND Salary > 30000執(zhí)行查詢返回的結(jié)果如下:EmployeeLastNameFirstNameSalaryReportsTo1思迷喬3200024瓊斯白35000230,000的最低工資條件注意,結(jié)果已經(jīng)舍去了湯康杜的記錄,因為他的薪酬沒有達到在本文的最后一節(jié),我們將會介紹兩種用來提升查詢結(jié)果可讀性的 技巧 。 第三節(jié):教你

8、如何畫龍點睛在本文的前兩節(jié),我們嘗試了一些基本數(shù)據(jù)庫查詢操作和能夠限定查詢結(jié)果的有效指令。這一節(jié)我們 將增加兩個可以提升查詢結(jié)果可讀性的 技巧 。為查詢結(jié)果中的列重命名我們經(jīng)常會遇到這種情況, 數(shù)據(jù)庫表中一些列的標(biāo)題晦澀難懂,即便是同一公司 IT 部門以外的用戶也 不一定清楚這些標(biāo)題的含義。幸好 sql 提供了這樣一個機制,讓我們可以改變查詢輸出結(jié)果里的標(biāo)題,提 高了結(jié)果的可讀性。還是以上面的 ABC 公司為實例,之前的數(shù)據(jù)庫只是把關(guān)于酬勞的一列標(biāo)為“Salary ,”但是沒有說明工資的時間范圍。如果我們想要通過執(zhí)行一個查詢,使數(shù)據(jù)庫列出 ABC 公司每個雇員姓名以及各自的年薪, 可以用下面的

9、查詢語法,把原來的數(shù)據(jù)庫稍做修改潤色:SELECT LastName, FirstName, Salary AS 'Annual Salary'FROM employees注意 SELECT 語句的第三個參數(shù)表達式與之前的例子稍顯不同。 AS 指令修改了輸出結(jié)果中的列標(biāo)題。 必須用單引號把新標(biāo)題括起來以便把兩個單詞中間的空格符包括在內(nèi)。EmployeeID LastName FirstName Annual Salary ReportsTo1 思迷 喬 32000 22 欣碧 蘇 45000 NULL3 康杜 湯 29500 24 瓊斯 白 35000 25 艾倫 畢 1725

10、0 46 雷 艾19500 47 莊生 柯 21000 3從查詢結(jié)果中刪除重復(fù)值讓我們來接受最后一項挑戰(zhàn)吧。 人力資源部主管想讓我們遞交一份包含那些有下屬的雇員 ID 號。我們可以通過以下的查詢語法獲得這一數(shù)據(jù):SELECT ReportsToFROM employees 返回結(jié)果如下:ReportsTo2NULL22443生活哪能那么簡單啊, 沒看出里面的圈套吧 ?人力資源主管看了一眼查詢結(jié)果, 就發(fā)難了: 為什么雇員ID 號重復(fù)了好幾次啊 ? 然后就把我們打發(fā)回編輯板前重新根據(jù)他的要求去除重復(fù)值。只要按照下面的語法在 select_list 中插入一個關(guān)鍵詞 DISTINCT 就可以達成主管的要求了:SELECT DISTINCT ReportsToFROM employees返回結(jié)果如下:Report

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論