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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

9、查詢語(yǔ)法,把原來的數(shù)據(jù)庫(kù)稍做修改潤(rùn)色:SELECT LastName, FirstName, Salary AS 'Annual Salary'FROM employees注意 SELECT 語(yǔ)句的第三個(gè)參數(shù)表達(dá)式與之前的例子稍顯不同。 AS 指令修改了輸出結(jié)果中的列標(biāo)題。 必須用單引號(hào)把新標(biāo)題括起來以便把兩個(gè)單詞中間的空格符包括在內(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ù)值讓我們來接受最后一項(xiàng)挑戰(zhàn)吧。 人力資源部主管想讓我們遞交一份包含那些有下屬的雇員 ID 號(hào)。我們可以通過以下的查詢語(yǔ)法獲得這一數(shù)據(jù):SELECT ReportsToFROM employees 返回結(jié)果如下:ReportsTo2NULL22443生活哪能那么簡(jiǎn)單啊, 沒看出里面的圈套吧 ?人力資源主管看了一眼查詢結(jié)果, 就發(fā)難了: 為什么雇員ID 號(hào)重復(fù)了好幾次啊 ? 然后就把我們打發(fā)回編輯板前重新根據(jù)他的要求去除重復(fù)值。只要按照下面的語(yǔ)法在 select_list 中插入一個(gè)關(guān)鍵詞 DISTINCT 就可以達(dá)成主管的要求了:SELECT DISTINCT ReportsToFROM employees返回結(jié)果如下:Report

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論