sql server 查詢)09

sql server 查詢)09

ID:19593057

大?。?78.50 KB

頁數(shù):30頁

時(shí)間:2018-10-03

sql server 查詢)09_第1頁
sql server 查詢)09_第2頁
sql server 查詢)09_第3頁
sql server 查詢)09_第4頁
sql server 查詢)09_第5頁
資源描述:

《sql server 查詢)09》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、目標(biāo)掌握簡單子查詢的用法掌握IN子查詢的用法掌握EXISTS子查詢的用法應(yīng)用T-SQL進(jìn)行綜合查詢1什么是子查詢3-1學(xué)員信息表問題:編寫T-SQL語句,查看年齡比“李斯文”大的學(xué)員,要求顯示這些學(xué)員的信息?分析:第一步:求出“李斯文”的年齡;第二步:利用WHERE語句,篩選年齡比“李斯文”大的學(xué)員;2什么是子查詢3-2實(shí)現(xiàn)方法一:采用T-SQL變量實(shí)現(xiàn)DECLARE@ageINT--定義變量,存放李斯文的年齡SELECT@age=stuAgeFROMstuInfoWHEREstuName=‘李斯文’--求出李斯文的年齡-

2、-篩選比李斯文年齡大的學(xué)員SELECT*FROMstuInfoWHEREstuAge>@ageGO3什么是子查詢3-3實(shí)現(xiàn)方法二:采用子查詢實(shí)現(xiàn)SELECT*FROMstuInfoWHEREstuAge>(SELECTstuAgeFROMstuInfowherestuName='李斯文')GO子查詢子查詢在WHERE語句中的一般用法:SELECT…FROM表1WHERE字段1>(子查詢)外面的查詢稱為父查詢,括號中嵌入的查詢稱為子查詢UPDATE、INSERT、DELETE一起使用,語法類似于SELECT語句將子查詢和比較

3、運(yùn)算符聯(lián)合使用,必須保證子查詢返回的值不能多于一個(gè)4使用子查詢替換表連接3-1問題:查詢筆試剛好通過(60分)的學(xué)員。學(xué)員信息表和成績表5使用子查詢替換表連接3-2實(shí)現(xiàn)方法一:采用表連接SELECTstuNameFROMstuInfoINNERJOINstuMarksONstuInfo.stuNo=stuMarks.stuNoWHEREwrittenExam=60GO內(nèi)連接(等值連接)6使用子查詢替換表連接3-3實(shí)現(xiàn)方法二:采用子查詢SELECTstuNameFROMstuInfoWHEREstuNo=(SELECTstu

4、NoFROMstuMarksWHEREwrittenExam=60)GO子查詢一般來說,表連接都可以用子查詢替換,但有的子查詢卻不能用表連接替換子查詢比較靈活、方便,常作為增刪改查的篩選條件,適合于操縱一個(gè)表的數(shù)據(jù)表連接更適合于查看多表的數(shù)據(jù)7IN子查詢4-1問題:查詢筆試剛好通過的學(xué)員名單。如何解決?8IN子查詢4-2解決方法:采用IN子查詢SELECTstuNameFROMstuInfoWHEREstuNoIN(SELECTstuNoFROMstuMarksWHEREwrittenExam=60)GO將=號改為ININ

5、后面的子查詢可以返回多條記錄常用IN替換等于(=)的比較子查詢9IN子查詢4-3問題:查詢參加考試的學(xué)員名單學(xué)員信息表和成績表(重抓本圖)分析:判斷一個(gè)學(xué)員是否參加考試其實(shí)很簡單,只需要查看該學(xué)員對應(yīng)的學(xué)號是否在考試成績表stuMarks中出現(xiàn)即可10IN子查詢4-4/*--采用IN子查詢參加考試的學(xué)員名單--*/SELECTstuNameFROMstuInfoWHEREstuNoIN(SELECTstuNoFROMstuMarks)GO演示:使用IN子查詢參考語句11NOTIN子查詢問題:查詢未參加考試的學(xué)員名單分析:加

6、上否定的NOT即可12EXISTS子查詢4-1例如:數(shù)據(jù)庫的存在檢測IFEXISTS(SELECT*FROMsysDatabasesWHEREname=’stuDB’)DROPDATABASEstuDBCREATEDATABASEstuDB…….—建庫代碼略13EXISTS子查詢4-2IFEXISTS(子查詢)語句EXISTS子查詢的語法:如果子查詢的結(jié)果非空,即記錄條數(shù)1條以上,則EXISTS(子查詢)將返回真(true),否則返回假(false)EXISTS也可以作為WHERE語句的子查詢,但一般都能用IN子查詢替換1

7、4EXISTS子查詢4-3問題:檢查本次考試,本班如果有人筆試成績達(dá)到80分以上,則每人提2分;否則,每人允許提5分分析:是否有人筆試成績達(dá)到80分以上,可以采用EXISTS檢測15EXISTS子查詢4-4/*--采用EXISTS子查詢,進(jìn)行酌情加分--*/IFEXISTS(SELECT*FROMstuMarksWHEREwrittenExam>80)BEGINprint'本班有人筆試成績高于80分,每人加2分,加分后的成績?yōu)椋?UPDATEstuMarksSETwrittenExam=writtenExam+2SELEC

8、T*FROMstumarksENDELSEBEGINprint'本班無人筆試成績高于80分,每人可以加5分,加分后的成績:'UPDATEstuMarksSETwrittenExam=writtenExam+5SELECT*FROMstumarksENDGO演示:使用EXISTS子查詢參考語句16NOTE

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。