




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2021-11-201主要內(nèi)容 掌握查詢的基本語法 掌握常用的SQL函數(shù) 掌握TOP關(guān)鍵字和DISTINCT關(guān)鍵字的用法第1頁/共36頁2021-11-2024.1 T-SQL查詢語句 4.1 查詢和記錄集 查詢:即根據(jù)用戶的要求,將數(shù)據(jù)庫表中符合條件的記錄篩選出來的過程。 記錄集:符合查詢條件的記錄組成的二維表結(jié)構(gòu)的結(jié)果集。查詢請(qǐng)求查詢請(qǐng)求查詢結(jié)果集查詢結(jié)果集第2頁/共36頁2021-11-2034.1 T-SQL查詢語句 4.1 查詢和記錄集圖為Student表中所有的記錄查詢廣州的所有學(xué)生信息第3頁/共36頁2021-11-2044.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢
2、Select語句基本語法格式 SELECT FROM WHERE ORDER BY ASC 或DESC說明 最基本的語法,是對(duì)單個(gè)表進(jìn)行查詢; SELECT后接要篩選的字段,多個(gè)字段之間有逗號(hào)分隔; WHERE條件部分是可選的,如果篩選的記錄有條件就加,并且可以由多個(gè)條件組合查詢,多個(gè)條件之間根據(jù)需要用邏輯運(yùn)算符AND 和 OR連接。 ORDER BY 關(guān)鍵字可選,排序默認(rèn)是按照升序即ASC關(guān)鍵字,也可以省略,如果要降序排序,需要明確使用DESC關(guān)鍵字。排序也可按照多個(gè)字段進(jìn)行。第4頁/共36頁2021-11-2054.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 返回表中所有字段,可
3、以用*替代字段名 例:查詢所有學(xué)生的信息 SELECT * FROM Student 篩選部分字段,必須明確指定字段名 例:顯示住在廣州的學(xué)生的編號(hào)、姓名和性別 SELECT StuNo, StuName, StuSex FROM Student WHERE StuAddress =廣州第5頁/共36頁2021-11-2064.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 在查詢中使用別名 用as關(guān)鍵字SELECT StuNo AS 學(xué)號(hào), StuName AS 姓名, StuSex AS 性別FROM StudentWHERE (StuAddress = 廣州)第6頁/共36頁202
4、1-11-2074.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 用空格SELECT StuNo 學(xué)號(hào), StuName 姓名, StuSex 性別FROM StudentWHERE (StuAddress = 廣州) 用=號(hào)SELECT 學(xué)號(hào)=StuNo, 姓名= StuName , 性別 =StuSexFROM StudentWHERE (StuAddress = 廣州)第7頁/共36頁2021-11-2084.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 查詢空記錄 通過IS NULL、IS NOT NULL來判斷是否為空 SELECT 學(xué)號(hào)=StuNo, 姓名= Stu
5、Name , 性別 =StuSex FROM Student WHERE (StuAddress = IS NOT NULL) 使用復(fù)合條件篩選記錄 例:篩選考試科目代號(hào)002為并且成績(jī)大于70分的信息 SELECT StuNo 學(xué)號(hào), CourseNo 課程號(hào), Score 成績(jī) FROM StuScore WHERE Score70 AND CourseNo=002 ORDER BY CourseNo第8頁/共36頁2021-11-2094.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 在查詢中使用常量列 例:在查詢中添加一個(gè)常量列國家,列的值為“中國” SELECT StuNo
6、學(xué)號(hào), StuName 姓名, StuSex 性別, StuAddress 地址, 國家= 中國 FROM Student在Student表中插入一列,列名為國家,列值為中國第9頁/共36頁2021-11-20104.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 替換結(jié)果集中的數(shù)據(jù) 例:根據(jù)學(xué)生成績(jī),劃分不同的等級(jí)。成績(jī)大于85分,顯示優(yōu)秀;成績(jī)小于60分顯示不及格;其余的顯示合格。使用CASE函數(shù)來實(shí)現(xiàn)。 SELECT StuNo 學(xué)號(hào), CourseNo 課程號(hào), 等級(jí)=CASE WHEN Score=85 THEN 優(yōu)秀 WHEN Score=60 THEN 合格 ELSE 不及
7、格 END FROM StuScore第10頁/共36頁2021-11-20114.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 排序的使用 例:由高到低顯示學(xué)生的成績(jī)信息 SELECT StuNo 學(xué)號(hào), CourseNo 課程號(hào), Score 成績(jī) FROM StuScore ORDER BY Score DESCn使用ORDER BY子句可以按一個(gè)或多個(gè)屬性列對(duì)數(shù)據(jù)進(jìn)行排序。n當(dāng)排序列包含空值(NULL)時(shí),若使用ASC關(guān)鍵字,則排序列為空值的元組最后顯示;若使用DESC關(guān)鍵字,則排序列為空值的元組最先顯示。第11頁/共36頁2021-11-20124.1 T-SQL查詢語句 使
8、用Select語句進(jìn)行查詢 示例9:由高到低顯示學(xué)生成績(jī)信息(多列排序) SELECT StuNo 學(xué)號(hào), CourseNo 課程號(hào), Score 成績(jī) FROM StuScore ORDER BY Score ,CourseNo 在該查詢中,系統(tǒng)先按照Score進(jìn)行升序排序(關(guān)鍵字ASC省略),然后 再按照CourseNo進(jìn)行升序排序。 當(dāng)基于多個(gè)屬性對(duì)數(shù)據(jù)進(jìn)行排序時(shí),出現(xiàn)在ORDER BY子句中的列的順序是非常重要的,因?yàn)橄到y(tǒng)是按照排序列的先后進(jìn)行排序的。如果第一個(gè)屬性相同,則依據(jù)第二個(gè)屬性排序,如果第二個(gè)屬性相同,則依據(jù)第三個(gè)屬性排序,依此類推。另外,在執(zhí)行多列排序時(shí),每一個(gè)列都可以指定
9、是升序還是降序。第12頁/共36頁2021-11-2013學(xué)生信息表Student(StuNo,StuName,StuDate,StuAddress,StuSex)選課成績(jī)表:StuScore(StuNo,CourseNo,Score)科目表:Course(CourseNo, CourseName,Grade)1.在Student表中插入一條學(xué)生記錄如下:學(xué)號(hào)S000088,姓名:王曉萌,性別:女。(在學(xué)生信息表中只有StuNo,StuName不能為空,其他均可以是空值)。2.將StuScore表中CourseNo為C001且Score小于60分的記錄的Score改為60分。3.將StuSco
10、re表中StuNo為S000010的成績(jī)記錄刪除。4.刪除StuScore表中所有成績(jī)記錄,并且刪除后信息不能恢復(fù)5.在Course表中查詢Grade等于3的課程信息的CourseNo, CourseName信息,在查詢結(jié)果中將CourseNo更名為課程號(hào),將CourseName更名為課程名,查詢結(jié)果按照CourseNo降序排序第13頁/共36頁2021-11-20144.2 在查詢中使用函數(shù) 在查詢中經(jīng)常要對(duì)篩選的字段通過函數(shù)來實(shí)現(xiàn)并做一些處理,T-SQL提供了大量,大概可以分為以下幾類: 字符串函數(shù) 日期函數(shù) 數(shù)學(xué)函數(shù) 系統(tǒng)函數(shù)第14頁/共36頁2021-11-20154.2 在查詢中使用
11、函數(shù) 字符串函數(shù)第15頁/共36頁2021-11-20164.2 在查詢中使用函數(shù) 字符串函數(shù)第16頁/共36頁2021-11-20174.2 在查詢中使用函數(shù) 日期函數(shù)第17頁/共36頁2021-11-20184.2 在查詢中使用函數(shù) 數(shù)學(xué)函數(shù)第18頁/共36頁2021-11-20194.2 在查詢中使用函數(shù) 數(shù)學(xué)函數(shù)n數(shù)學(xué)函數(shù)返回參加運(yùn)算的數(shù)據(jù)的數(shù)值,如下面的檢索語句,分別使用了求圓周率的PI函數(shù)、求正弦值的SIN函數(shù)、求指數(shù)的EXP函數(shù)、求冪值的POWER函數(shù)等。SELECT PI(), S IN(PI()/2), COS(PI()/4), EXP(10), POWER(10,2)第19
12、頁/共36頁2021-11-20204.2 在查詢中使用函數(shù) 系統(tǒng)函數(shù)第20頁/共36頁2021-11-20214.3 Top關(guān)鍵字的使用 語法格式: TOP n 從前向后返回n行數(shù)據(jù) TOP n PERCENT 按照百分比返回指定數(shù)量的數(shù)據(jù)行 說明: 當(dāng)在查詢語句中使用了ORDER BY子句時(shí),還經(jīng)常在SELECT子句中使用 TOP關(guān)鍵字。TOP關(guān)鍵字表示僅在結(jié)果集中從前向后列出指定數(shù)量的數(shù)據(jù)行。如果在使用TOP關(guān)鍵字的SELECT語句中沒有使用排序子句,則只是隨機(jī)地返回指定數(shù)量的數(shù)據(jù)行。第21頁/共36頁2021-11-20224.3 Top關(guān)鍵字的使用例:查詢班內(nèi)前5個(gè)學(xué)生的信息。SEL
13、ECT TOP (5) * FROM Student ORDER BY Sno本查詢先將結(jié)果集中的數(shù)據(jù)按Sno升序排序,然后取出前5個(gè)輸出顯示。例 :查詢成績(jī)排名在前30的學(xué)生學(xué)號(hào)、科目和成績(jī)。SELECT TOP 30 PERCENT StuNo, CourseNo, Score FROM StuScore ORDER BY Score DESC本查詢先將結(jié)果集中的數(shù)據(jù)按照Score降序排序,再從排序后的記錄里取前30進(jìn)行輸出。第22頁/共36頁2021-11-20234.3 Top關(guān)鍵字的使用 有的讀者或許會(huì)問,如果設(shè)定列出5行數(shù)據(jù),但是第6行、第7行甚至更多行的數(shù)據(jù)如果和第5行一樣的話,
14、那么這些行的數(shù)據(jù)是否會(huì)顯示?例如在【例11】中,若結(jié)果集列出了3行數(shù)據(jù),假設(shè)第4行數(shù)據(jù)中Score值也是89的話,那不是就丟失了一部分可以使用的信息嗎?要解決這個(gè)問題很簡(jiǎn)單,只需要在TOP子句后使用 WITH TIES子句就可以了。例如同樣在【例11】中,如果將SELECT子句改為: 例11 (改):查詢成績(jī)排名在前30的學(xué)生學(xué)號(hào)、科目和成績(jī)。 SELECT TOP 30 PERCENT WITH TIES StuNo, CourseNo, Score FROM StuScore ORDER BY Score DESC第23頁/共36頁2021-11-20244.3 Top關(guān)鍵字的使用 在SQ
15、L Server 2005中還可以用變量來限定顯示記錄的數(shù)量 例:返回前3條學(xué)生信息 Declare n int SET n=3 SElECT TOP (n ) * FROM STUDENT 如果在TOP后接的是變量,必須用括號(hào)。第24頁/共36頁2021-11-20254.4 過濾重復(fù)記錄DISTINCT關(guān)鍵字的使用 語法格式 DISTINCT 列名,n 說明: 在SELECT子句中,可以通過使用ALL或DISTINCT關(guān)鍵字來控制查詢結(jié)果集的顯示。ALL關(guān)鍵字表示檢索所有的數(shù)據(jù),包括重復(fù)的數(shù)據(jù)行,DISTINCT關(guān)鍵字表示僅僅顯示不重復(fù)的數(shù)據(jù)行,對(duì)于重復(fù)的數(shù)據(jù)行,則只顯示一次。默認(rèn)使用AL
16、L關(guān)鍵字。 一個(gè)SELECT語句中DISTINCT只能出現(xiàn)一次,而且必須放在所有列之前第25頁/共36頁2021-11-2026一。一。查詢考試信息SELECT StuNo AS 學(xué)號(hào)FROM StuScore二。查詢參加了考試的學(xué)生SELECT DISTINCT StuNo AS 學(xué)號(hào)FROM StuScore4.4 過濾重復(fù)記錄DISTINCT關(guān)鍵字的使用第26頁/共36頁2021-11-20274.5 計(jì)算列的使用 查詢數(shù)據(jù)時(shí),經(jīng)常需要對(duì)表中的數(shù)據(jù)計(jì)算后才能得到滿意的結(jié)果,SQL Server在數(shù)據(jù)查詢中提供了計(jì)算的能力 例:在StuScore表中查詢學(xué)號(hào),課程號(hào),成績(jī)信息,并將所有人成
17、績(jī)減5分。 SELECT StuNo 學(xué)號(hào), CourseNo 課程號(hào), Score-5 成績(jī) FROM StuScore第27頁/共36頁2021-11-2028總結(jié) 用SELECT語句從數(shù)據(jù)表中檢索數(shù)據(jù)用戶需要的數(shù)據(jù) 通過給列起別名使得查詢的信息更明確 使用TOP關(guān)鍵字可以顯示結(jié)果集中前n條記錄 使用DISTINCT可以消除結(jié)果集中重復(fù)的記錄,使結(jié)果集中的記錄具有唯一性。n用SELECT語句從數(shù)據(jù)表中檢索數(shù)據(jù)用戶需要的數(shù)據(jù)n通過給列起別名使得查詢的信息更明確n使用TOP關(guān)鍵字可以顯示結(jié)果集中前n條記錄n使用DISTINCT可以消除結(jié)果集中重復(fù)的記錄,使結(jié)果集中的記錄具有唯一性。 第28頁/
18、共36頁2021-11-2029作業(yè) 課后系統(tǒng)1-6題做在練習(xí)冊(cè)上 復(fù)習(xí)本章知識(shí)點(diǎn) 預(yù)習(xí)第5章復(fù)雜查詢第29頁/共36頁2021-11-20304.1 T-SQL查詢語句 4.1 查詢和記錄集 查詢:即根據(jù)用戶的要求,將數(shù)據(jù)庫表中符合條件的記錄篩選出來的過程。 記錄集:符合查詢條件的記錄組成的二維表結(jié)構(gòu)的結(jié)果集。查詢請(qǐng)求查詢請(qǐng)求查詢結(jié)果集查詢結(jié)果集第30頁/共36頁2021-11-20314.1 T-SQL查詢語句 使用Select語句進(jìn)行查詢 替換結(jié)果集中的數(shù)據(jù) 例:根據(jù)學(xué)生成績(jī),劃分不同的等級(jí)。成績(jī)大于85分,顯示優(yōu)秀;成績(jī)小于60分顯示不及格;其余的顯示合格。使用CASE函數(shù)來實(shí)現(xiàn)。 SELECT StuNo 學(xué)號(hào), CourseNo 課程號(hào), 等級(jí)=CASE WHEN Score=85 THEN 優(yōu)秀 WHEN Score=60 THEN 合格 ELSE 不及格 END FROM StuScore第31頁/共36頁2021-11-20324.2 在查詢中使用函數(shù) 字符串函數(shù)第32頁/共36頁2021-11-20334.3 Top關(guān)鍵字的使用 語法格式: TOP n 從前向后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人自助循環(huán)貸款合同范本
- 東莞抵押合同范本
- 申報(bào)課題書怎么寫
- 畜牧課題申報(bào)書范文
- 原材料海外采購合同范本
- 課題申報(bào)書樣板
- 光伏承建合同范本
- 公程合同范本
- 申報(bào)書課題設(shè)計(jì)論證
- 全面提升國際化水平的實(shí)施方案
- 2024年湖南工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(頻考版)含答案解析
- 新視野大學(xué)英語(第四版)讀寫教程1(思政智慧版)課件 Unit 5 Friendship across border and gender
- 2023年北京市地質(zhì)礦產(chǎn)勘查院所屬事業(yè)單位招聘考試真題
- 世界著名童話故事英文繪本故事丑小鴨
- 智能中臺(tái)數(shù)據(jù)底座解決方案
- 《財(cái)政與金融》課程教學(xué)大綱
- 《國際稅收》教案
- 傳統(tǒng)體育養(yǎng)生概論
- 電力建設(shè)工程預(yù)算定額2006版
- 公益性崗位保潔員保證書
- 行政許可執(zhí)法案卷自評(píng)表
評(píng)論
0/150
提交評(píng)論