版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第第 六六 章章SELECT 數(shù)據(jù)查詢數(shù)據(jù)查詢數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 20052本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo) n掌握掌握SELECT查詢語句的結(jié)構(gòu)及各子句的使用查詢語句的結(jié)構(gòu)及各子句的使用n掌握聯(lián)接查詢掌握聯(lián)接查詢n掌握帶子查詢的嵌套查詢掌握帶子查詢的嵌套查詢n了解聯(lián)合查詢了解聯(lián)合查詢數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200536.1 SELECT 查詢語句查詢語句n所謂查詢,就是對已經(jīng)存在于數(shù)據(jù)庫中的數(shù)據(jù)所謂查詢,就是對已經(jīng)存在于數(shù)據(jù)庫中的數(shù)據(jù)按特定的組合、條件或次序進(jìn)行檢索。查詢功按特定的組合、條件或次序進(jìn)行檢索。查詢功能是數(shù)據(jù)庫最基本也是最重要的功能。能是數(shù)據(jù)庫最基本也是最重
2、要的功能。nSELECTSELECT語句從一個(gè)或者多個(gè)表或視圖中檢索記語句從一個(gè)或者多個(gè)表或視圖中檢索記錄,使用查詢編輯器輸入一條錄,使用查詢編輯器輸入一條SELECTSELECT語句,查語句,查詢情況將在結(jié)果窗口中顯示。詢情況將在結(jié)果窗口中顯示。 數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 20054查詢語句基本格式查詢語句基本格式SELECT | AS FROM WHERE GROUP BY HAVIING ORDER BY ASC或或DESC數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 20055說明:說明:nSELECTSELECT語句的含義是,根據(jù)語句的含義是,根據(jù)WHEREWHERE子句指定的子句指
3、定的條件,從條件,從FROMFROM子句后面的基本表或視圖中找出子句后面的基本表或視圖中找出滿足條件的記錄,再按照滿足條件的記錄,再按照SELECTSELECT子句指定的目子句指定的目標(biāo)列表達(dá)式,選出這些記錄相應(yīng)的列形成結(jié)果標(biāo)列表達(dá)式,選出這些記錄相應(yīng)的列形成結(jié)果集返回。其中,集返回。其中,SELECTSELECT子句和子句和FROMFROM子句是必選子句是必選的的,而,而WHEREWHERE子句、子句、GROUP BYGROUP BY子句、子句、HAVINGHAVING子子句以及句以及ORDER BYORDER BY子句都是可選的。子句都是可選的。數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005
4、6舉例舉例:SELECT SCode,SName,SAddress FROM Students WHERE SSEX = 0 ORDER BY SCode數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200576.1.2 SELECT 子句子句nSELECT DISTINCT TOP n | | AS n用于描述結(jié)果集中的列用于描述結(jié)果集中的列, 列之間用逗號分隔列之間用逗號分隔.數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200581. 投影表中的某些列投影表中的某些列SELECT SCode,SName,SAddress FROM StudentsSELECT SCode,SName,SAddress FR
5、OM StudentsWHERE sex=男男數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200592. TOP子句限制返回的行數(shù)子句限制返回的行數(shù)nTOP n PERCENT例例6-2USE LibraryGOSELECT TOP 5 BID,Bname,AuthorFROM BookGO數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200510使用使用PERCENT例例6-3USE LibraryGOSELECT TOP 20 PERCENT BID,Bname,AuthorFROM BookGO數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005113. 是否消除重復(fù)行是否消除重復(fù)行nALL|DISTINCT:
6、DISTINCT消除查詢結(jié)果中的重消除查詢結(jié)果中的重復(fù)行復(fù)行.例例6-4USE LibraryGOSELECT PubCompFROM BookGO數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200512使用使用DISTINCT消除重復(fù)行消除重復(fù)行USE LibraryGOSELECT DISTINCT PubCompFROM BookGO注意注意: DISTINCT必須緊跟在必須緊跟在SELECT后。后。數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005134. 用通配符用通配符“*”查詢表中所有列查詢表中所有列【例【例6-5】SELECT * FROM Book數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200
7、5145. 使用表達(dá)式計(jì)算列值使用表達(dá)式計(jì)算列值例例6-6SELECT BID,Bname,Author,PubComp,Price,Price*0.9 FROM Book數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005156. 自定義列標(biāo)題自定義列標(biāo)題例例6-8 SELECT BID,Bname,Author,PubComp,Price,Price*0.9 AS 折扣價(jià)折扣價(jià) FROM Book數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005167. 使用列函數(shù)使用列函數(shù)(聚合函數(shù)聚合函數(shù))函數(shù)名函數(shù)名語法格式語法格式功能說明功能說明AVGAVG(ALL|DISTINCT 列名列名) 計(jì)算一個(gè)數(shù)值列
8、的平均值計(jì)算一個(gè)數(shù)值列的平均值SUMSUM(ALL|DISTINCT 列名列名) 計(jì)算一個(gè)數(shù)值列的總和計(jì)算一個(gè)數(shù)值列的總和MAXMAX(ALL|DISTINCT 列名列名) 返回指定列中的最大值返回指定列中的最大值MINMIN(ALL|DISTINCT 列名列名) 返回指定列中的最小值返回指定列中的最小值COUNT COUNT(DISTINCT 列名列名|*)統(tǒng)計(jì)查詢結(jié)果集中記錄的個(gè)數(shù)統(tǒng)計(jì)查詢結(jié)果集中記錄的個(gè)數(shù)數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200517COUNT(DISTINCT 列名列名|*)例例6-9SELECT COUNT(*) AS 冊數(shù)冊數(shù) -統(tǒng)計(jì)滿足條件的行數(shù)統(tǒng)計(jì)滿足條件的行
9、數(shù)FROM BookWHERE PubComp=高等教育出版社高等教育出版社例例6-10SELECT COUNT(DISTINCT(PubComp) -統(tǒng)計(jì)不重復(fù)的出版社的個(gè)數(shù)統(tǒng)計(jì)不重復(fù)的出版社的個(gè)數(shù)AS 出版社個(gè)出版社個(gè)數(shù)數(shù)FROM Book數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200518MAX,MIN,SUM,AVG函數(shù)的使用函數(shù)的使用例例6-11查詢查詢book表中圖書的總冊數(shù)表中圖書的總冊數(shù),最高價(jià)最高價(jià),最低價(jià)最低價(jià),總價(jià)值總價(jià)值,折扣后總價(jià)值折扣后總價(jià)值,平均價(jià)平均價(jià).SELECT COUNT(*) AS 總冊數(shù)總冊數(shù),MAX(price) AS 最高價(jià)最高價(jià),MIN(price)
10、 AS 最低價(jià)最低價(jià),SUM(price) AS 總價(jià)值總價(jià)值,SUM(price*0.9) AS 折后總價(jià)值折后總價(jià)值,AVG(price) AS 平均價(jià)平均價(jià)FROM Book數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005196.1.3 FROM子句實(shí)現(xiàn)連接查詢子句實(shí)現(xiàn)連接查詢n格式格式: FROM 表表1,表表2 -詳見詳見6-2節(jié)節(jié)例例6-12USE 學(xué)生成績管理學(xué)生成績管理GOSELECT students.學(xué)號學(xué)號,姓名姓名,課程名稱課程名稱,成績成績FROM students,SC,courseWHERE students.學(xué)號學(xué)號=SC.學(xué)號學(xué)號 -連接條件連接條件 AND SC
11、.課程號課程號=course.課程號課程號 -連接條件連接條件GO數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200520為基本表指定臨時(shí)別名為基本表指定臨時(shí)別名例例6-13USE 學(xué)生成績管理學(xué)生成績管理GOSELECT s.學(xué)號學(xué)號,姓名姓名,課程名稱課程名稱,成績成績FROM students AS s,SC,course AS cWHERE s.學(xué)號學(xué)號=SC.學(xué)號學(xué)號 AND SC.課程號課程號=c.課程號課程號GO數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005216.1.4 WHERE子句選擇查詢子句選擇查詢n格式格式: WHERE 查詢條件查詢條件n功能功能: 查詢滿足條件的數(shù)據(jù)行查詢滿足
12、條件的數(shù)據(jù)行. 數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200522WHERE子句中的運(yùn)算符子句中的運(yùn)算符 運(yùn)算符分類運(yùn)算符分類運(yùn)運(yùn) 算算 符符意意 義義比較運(yùn)算符比較運(yùn)算符、=、=、=、!=、!、!20 AND 性別性別= 女女?dāng)?shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005263. 范圍運(yùn)算符范圍運(yùn)算符n格式格式:列名列名 NOT BETWEEN 開始值開始值 AND 結(jié)束值結(jié)束值n等價(jià)于等價(jià)于: (列名列名=開始值開始值 AND 列名列名 (SELECT AVG(定價(jià)定價(jià)) -子查詢結(jié)果是單值子查詢結(jié)果是單值 FROM Books )數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200562如果子查詢結(jié)果
13、包含多個(gè)值如果子查詢結(jié)果包含多個(gè)值n格式格式: 列名列名 比較運(yùn)算符比較運(yùn)算符 ALL|SOME|ANY(子查詢子查詢)n【例【例6-43】在】在Borrow表中,查詢讀者編號最大的讀表中,查詢讀者編號最大的讀者借書情況。者借書情況。nSELECT * FROM Borrow WHERE RID=ALL -子查詢結(jié)果是多值子查詢結(jié)果是多值 (SELECT RID FROM Reader )數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200563或或:nSELECT * FROM Borrow WHERE RID=ALL -子查詢結(jié)果是單值子查詢結(jié)果是單值,ALL可缺省可缺省 (SELECT MAX(R
14、ID) FROM Reader )數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005646.3.3 EXISTS (子查詢子查詢)n格式格式: EXISTS(子查詢子查詢)n功能功能: 當(dāng)子查詢結(jié)果不為空集時(shí)當(dāng)子查詢結(jié)果不為空集時(shí),條件成立。條件成立。n【例【例6-45】從選課成績數(shù)據(jù)庫中,查詢出選修了至少】從選課成績數(shù)據(jù)庫中,查詢出選修了至少一門課(此學(xué)號在選課表中存在)的學(xué)生情況。一門課(此學(xué)號在選課表中存在)的學(xué)生情況。nSELECT * FROM students WHERE EXISTS (SELECT * FROM sc WHERE students.學(xué)號學(xué)號=sc.學(xué)號學(xué)號)數(shù)據(jù)庫應(yīng)用
15、技術(shù)SQL Server 2005656.3.4 子查詢在其他語句中的使用子查詢在其他語句中的使用n子查詢還可以用于子查詢還可以用于UPDATE和和DELETE語句中。語句中。n【例【例6-47】計(jì)算】計(jì)算reader表中已借數(shù)量表中已借數(shù)量”Lendnum”列的值。列的值。nUPDATE Reader SET Lendnum= (SELECT COUNT(*) FROM borrow WHERE ReturnDate IS NULL AND Reader.RID=Borrow.RID)數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200566【補(bǔ)充例【補(bǔ)充例1】刪除成績表】刪除成績表(SC)中成績最低
16、的記錄。中成績最低的記錄。nDELETE FROM SC WHERE 成績成績=(SELECT min(成績成績) FROM SC)【補(bǔ)充例【補(bǔ)充例2】刪除成績表】刪除成績表(SC)中成績最低的中成績最低的3條記錄。條記錄。nDELETE FROM SC WHERE 成績成績 IN(SELECT TOP 3 成績成績 FROM SCORDER BY 成績成績 ASC)數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005676.4 聯(lián)合查詢聯(lián)合查詢n格式格式: SELECT_1 UNION ALL SELECT_2 n【例【例6-48】SELECT 書名書名FROM Books WHERE 出版社出版社
17、=科技科技UNIONSELECT 書名書名FROM Books WHERE 出版社出版社=高教高教 -并運(yùn)算并運(yùn)算,不包括重復(fù)行不包括重復(fù)行數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200568聯(lián)合查詢結(jié)果排序聯(lián)合查詢結(jié)果排序 SELECT 編號編號,書名書名FROM Books WHERE 出版社出版社=科技科技UNION SELECT 編號編號,書名書名FROM Books WHERE 出版社出版社=高教高教 ORDER BY 編號編號 -按圖書編號排序按圖書編號排序 GO數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 200569作業(yè)作業(yè):n一、選擇題:一、選擇題:1-6n二、填空題:二、填空題:1,3數(shù)
18、據(jù)庫應(yīng)用技術(shù)SQL Server 200570補(bǔ)充題補(bǔ)充題1. 在在select語句中使用語句中使用“*”表示表示_。A全部元組全部元組 B表表 C全部屬性全部屬性 D鍵鍵2在在SQL的的SELECT語句中用于實(shí)現(xiàn)關(guān)系的連接運(yùn)算的語句中用于實(shí)現(xiàn)關(guān)系的連接運(yùn)算的短語是短語是_。AFOR BJOIN CWHERE DCONDITION 1. C2. B數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005713使用使用SQL語句進(jìn)行分組檢索時(shí),為了去掉不滿足條件語句進(jìn)行分組檢索時(shí),為了去掉不滿足條件的分組,應(yīng)當(dāng)?shù)姆纸M,應(yīng)當(dāng)_。A使用使用WHERE子句子句 B在在GROUP BY后面使用:后面使用:HAVIN
19、G子句子句 C先使用先使用WHERE子句,再使用子句,再使用HAVING子句子句 D先使用先使用HAVING子句,再使用子句,再使用WHERE子句子句3. B數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 2005724. 表達(dá)式表達(dá)式price between 5 and 20的含義是的含義是_。Aprice5 and price20 Bprice5 and price5 and price90或或SELECT s.*FROM STUDENT sWHERE 學(xué)號學(xué)號 IN( SELECT 學(xué)號學(xué)號 FROM SC WHERE 課程號課程號=C01 AND 成績成績90)數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server
20、 20058712、查詢成績最高的前、查詢成績最高的前3名學(xué)生的學(xué)號。名學(xué)生的學(xué)號。SELECT TOP 3 學(xué)號學(xué)號,成績成績 FROM SCORDER BY 成績成績 DESC補(bǔ)充習(xí)題答案補(bǔ)充習(xí)題答案數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 20058813、查詢成績最差的前、查詢成績最差的前10%學(xué)生的學(xué)號。學(xué)生的學(xué)號。SELECT TOP 10 PERCENT 學(xué)號學(xué)號,成績成績 FROM SCORDER BY 成績成績 ASC補(bǔ)充習(xí)題答案補(bǔ)充習(xí)題答案數(shù)據(jù)庫應(yīng)用技術(shù)SQL Server 20058914、查詢選修了、查詢選修了“C02”成績最高的學(xué)生的學(xué)號、成績最高的學(xué)生的學(xué)號、姓名、課程號、成績。姓名、課程號、成績。Select top 1 s.學(xué)號學(xué)號,姓名姓名,課程號課程號,成績成績From student s inner join SC on s.學(xué)號學(xué)號=SC.學(xué)號學(xué)號Wh
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 演員 長期合同范例
- 單位網(wǎng)線鋪設(shè)合同范例
- 農(nóng)村住房轉(zhuǎn)讓合同范例
- 出版補(bǔ)充協(xié)議合同范例
- 武漢混凝土買賣合同范例
- 灌溉工程合同范例
- 文字校對合同范例
- 入城證申請合同范例
- 醫(yī)療機(jī)構(gòu)聘用合同范例
- 商業(yè)模特合同范例
- 2024年山東省青島市中考英語試卷附答案
- 股權(quán)激勵(lì)對賭協(xié)議范本
- 銀行保安服務(wù) 投標(biāo)方案(技術(shù)標(biāo))
- 居家養(yǎng)老服務(wù)報(bào)價(jià)明細(xì)表
- 食材配送服務(wù)方案投標(biāo)方案(技術(shù)方案)
- 經(jīng)營分析培訓(xùn)課件(課件)
- 人教版三年級數(shù)學(xué)上冊第十單元《總復(fù)習(xí)》(大單元教學(xué)設(shè)計(jì))
- 排球試題題庫
- CJJT148-2010 城鎮(zhèn)燃?xì)饧映艏夹g(shù)規(guī)程
- 人教版八年級上冊地理問答題提綱
- 試驗(yàn)檢測方案
評論
0/150
提交評論