![SQL Server數(shù)據(jù)庫實(shí)踐教程 課件 05-06 單表查詢_第1頁](http://file4.renrendoc.com/view12/M06/17/2F/wKhkGWddcAiAJu0pAACUlIXbSrM855.jpg)
![SQL Server數(shù)據(jù)庫實(shí)踐教程 課件 05-06 單表查詢_第2頁](http://file4.renrendoc.com/view12/M06/17/2F/wKhkGWddcAiAJu0pAACUlIXbSrM8552.jpg)
![SQL Server數(shù)據(jù)庫實(shí)踐教程 課件 05-06 單表查詢_第3頁](http://file4.renrendoc.com/view12/M06/17/2F/wKhkGWddcAiAJu0pAACUlIXbSrM8553.jpg)
![SQL Server數(shù)據(jù)庫實(shí)踐教程 課件 05-06 單表查詢_第4頁](http://file4.renrendoc.com/view12/M06/17/2F/wKhkGWddcAiAJu0pAACUlIXbSrM8554.jpg)
![SQL Server數(shù)據(jù)庫實(shí)踐教程 課件 05-06 單表查詢_第5頁](http://file4.renrendoc.com/view12/M06/17/2F/wKhkGWddcAiAJu0pAACUlIXbSrM8555.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQLServer數(shù)據(jù)庫實(shí)踐SQL語言一般分四類數(shù)據(jù)定義語言(DDL,DataDefinitionLanguage)數(shù)據(jù)操縱語言(DML,DataManipulationLanguage)數(shù)據(jù)查詢語言(DQL,DataQuery
Language)數(shù)據(jù)控制語言(DCL,DataControlLanguage)(+事務(wù))√√√√數(shù)據(jù)查詢語法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]stuDB數(shù)據(jù)庫三張表數(shù)據(jù)查詢目錄1、單表查詢2、連接查詢3、嵌套查詢4、集合查詢5、基于派生表的查詢1、單表查詢單表查詢僅涉及一個(gè)表,又分為:選擇表中的若干列選擇表中的若干元組
ORDERBY排序子句聚集函數(shù)
GROUPBY分組子句①
選擇表中的若干列【例題5-1】查詢?nèi)w學(xué)生的姓名和民族。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]SELECTName,NationFROM
Student①
選擇表中的若干列【例題5-2】查詢?nèi)w學(xué)生的姓名、民族和性別。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]SELECTName,Nation,SexFROM
Student注意:列的順序①
選擇表中的若干列【例題5-3】查詢?nèi)w學(xué)生的詳細(xì)信息。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]SELECT
Sno,Name,Sex,Nation,Birthday
FROM
Student或者SELECT
*
FROM
Student習(xí)題1.查詢所有課程的課程名和學(xué)分2.查詢課程的所有信息查詢語法SELECT
<輸出列表>]…FROM數(shù)據(jù)源列表習(xí)題1.查詢所有課程的課程名和學(xué)分
selectcname,creditfromcourse2.查詢課程的所有信息查詢語法SELECT
<輸出列表>]…FROM數(shù)據(jù)源列表習(xí)題1.查詢所有課程的課程名和學(xué)分
selectcname,creditfromcourse2.查詢課程的所有信息
select*fromcourseselectCno,cname,hours,credit,Semesterfromcourse查詢語法SELECT
<輸出列表>]…FROM數(shù)據(jù)源列表①選擇表中的若干列查詢經(jīng)過計(jì)算的值SELECT子句的<輸出列表>可以為:算術(shù)表達(dá)式字符串常量函數(shù)列別名SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]①
選擇表中的若干列【例題5-4】查詢學(xué)生的姓名及年齡。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]SELECT
Name,YEAR(GETDATE())-YEAR(Birthday)
FROM
Student①
選擇表中的若干列【例題5-4】查詢學(xué)生的姓名及年齡。GETDATE()函數(shù)取系統(tǒng)當(dāng)前日期YEAR()函數(shù)取日期中的年定義列別名有三種方法①別名=列名②列名as別名③列名別名SELECT
Name,YEAR(GETDATE())-YEAR(Birthday)
FROM
StudentSELECTName,nl=YEAR(GETDATE())-YEAR(Birthday)FROMStudentSELECTName,YEAR(GETDATE())-YEAR(Birthday)asnl
FROMStudentSELECTName,YEAR(GETDATE())-YEAR(Birthday)nl
FROMStudent例:SELECTname,birthday,YEAR(birthday)年,month(birthday)月,day(birthday)日FROMStudent常用日期函數(shù)
Getdate():返回服務(wù)器當(dāng)前系統(tǒng)日期和時(shí)間
year(DATA):返回日期中的年
month(DATA):返回日期中的月
day(DATA):返回日期中的日②
選擇表中的若干元組【例題5-5】查詢學(xué)生分布在哪些民族
SELECTNationFROMStudent等價(jià)于:SELECTALLNationFROMStudent SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]②
選擇表中的若干元組【例題5-5】查詢學(xué)生分布在哪些民族
SELECTDISTINCTNationFROMStudent SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]說明:DISTINCT關(guān)鍵詞,去掉查詢結(jié)果中重復(fù)的行②
選擇表中的若干元組【例題5-7】查詢哪些學(xué)生是少數(shù)民族,顯示學(xué)生姓名和民族。SELECTName,NationFROMStudentWHERENation<>'漢族'SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]WHERE
子句中常用的查詢運(yùn)算符查詢條件謂詞比較=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比較運(yùn)算符確定范圍BETWEENAND,NOTBETWEENAND確定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重條件(邏輯運(yùn)算)AND,OR,NOT②
選擇表中的若干元組【例題5-8】查詢年齡在19~23歲(包括19和23歲)之間的學(xué)生的學(xué)號(hào)、姓名、出生日期。1:SELECTSno,Name,BirthdayFROMStudent
WHEREYEAR(GETDATE())-YEAR(Birthday)BETWEEN19AND232:SELECTSno,Name,BirthdayFROMStudent
WHEREYEAR(GETDATE())-YEAR(Birthday)>=19
ANDYEAR(GETDATE())-YEAR(Birthday)<=23操作練習(xí)實(shí)驗(yàn)4單表查詢(一)1~5題
②
選擇表中的若干元組【例題5-9】查詢民族為“漢族”或者“滿族”的學(xué)生詳細(xì)信息。SELECT*FROMStudentWHERENationin('漢族','滿族')或者SELECT*FROMStudentWHERENation='漢族'orNation='滿族'②
選擇表中的若干元組【例題5-10】查詢哪些學(xué)生選課了還沒有考試成績(jī),顯示學(xué)號(hào),課程號(hào)。SELECTSno,CnoFROMSCWHEREGradeisNULL判斷空值不能用等號(hào)=②
選擇表中的若干元組-模糊查詢【例題5-11】查詢哪些學(xué)生姓名中含有“南”字。SELECT*FROMStudentWHERENameLIKE'%南%'模糊查詢通配符:%:任意長(zhǎng)度_:?jiǎn)蝹€(gè)字符②
選擇表中的若干元組-模糊查詢【例題5-13】找出所有姓“張”和姓“江”的員工信息。SELECT*FROMStudentWHERENameLIKE'[張,江]%'SELECT*FROMStudentWHEREsubstring(Name,1,1)IN('張','江')SELECT*FROMStudentWHEREleft(Name,1)IN('張','江')模糊查詢通配符:%:任意長(zhǎng)度_:?jiǎn)蝹€(gè)字符常用字符串函數(shù)Left(字符表達(dá)式,整數(shù)):截取從左側(cè)開始指定位數(shù)的子字符串Right(字符表達(dá)式,整數(shù)):截取從右側(cè)開始指定位數(shù)的子字符串Substring(字符表達(dá)式,起始位置,n):從任意位置取子串,截取從起始位置開始的n個(gè)字符Ltrim(字符表達(dá)式):去掉字符表達(dá)式左側(cè)(前面)的空格Rtrim(字符表達(dá)式):去掉字符表達(dá)式右側(cè)(尾部)的空格操作練習(xí)實(shí)驗(yàn)4單表查詢(一)
SQLServer數(shù)據(jù)庫實(shí)踐SQL語言一般分四類數(shù)據(jù)定義語言(DDL,DataDefinitionLanguage)數(shù)據(jù)操縱語言(DML,DataManipulationLanguage)數(shù)據(jù)查詢語言(DQL,DataQuery
Language)數(shù)據(jù)控制語言(DCL,DataControlLanguage)(+事務(wù))√√√√數(shù)據(jù)查詢語法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]stuDB數(shù)據(jù)庫三張表數(shù)據(jù)查詢目錄1、單表查詢2、連接查詢3、嵌套查詢4、集合查詢5、基于派生表的查詢1、單表查詢單表查詢僅涉及一個(gè)表,又分為:選擇表中的若干列選擇表中的若干元組
ORDERBY排序子句聚集函數(shù)
GROUPBY分組子句√√③ORDERBY排序子句【例題5-16】查詢選修了1號(hào)課程的學(xué)生學(xué)號(hào)及其成績(jī),查詢結(jié)果按照成績(jī)降序排列。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]③ORDERBY排序子句【例題5-16】查詢選修了1號(hào)課程的學(xué)生學(xué)號(hào)及其成績(jī),查詢結(jié)果按照成績(jī)降序排列。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]SELECTSno,GradeFROMSCWHERECno=1ORDERBYGradeDESC分?jǐn)?shù)降序表中數(shù)據(jù)順序③ORDERBY排序子句【例題5-17】查詢學(xué)生的學(xué)號(hào)、姓名、民族、出生日期,查詢結(jié)果按照民族升序排列,同一民族的按照年齡降序排列。SELECTSno,Name,Nation,BirthdayFROMStudentORDERBYNationASC,BirthdayASC
SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]判斷題:orderby子句中如果沒有寫排序字段,默認(rèn)升序④聚集函數(shù)函數(shù)功能COUNT(*)統(tǒng)計(jì)元組(行、記錄)數(shù)COUNT(<列名>)統(tǒng)計(jì)該列(字段、屬性)值不為空的元組數(shù)COUNT(DISTINCT<列名>)統(tǒng)計(jì)該列值不為空,并且值不重復(fù)的元組數(shù)SUM(<列名>)計(jì)算一列值的總和(此列必須為數(shù)值型)AVG(<列名>)計(jì)算一列值的平均值(此列必須為數(shù)值型)MAX(<列名>)求一列值的最大值MIN(<列名>)求一列值的最小值五個(gè)聚集函數(shù),只有count()函數(shù)多種用法④聚集函數(shù)【例題5-18】統(tǒng)計(jì)有多少名學(xué)生。代碼1:SELECTcount(*)FROMStudent代碼2:SELECTcount(*)學(xué)生數(shù)FROMStudentSELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]④聚集函數(shù)【例題5-20】查詢有多少學(xué)生選修了課程。SELECTcount(*)FROMSC結(jié)果:5SELECTcount(DISTINCTSno)選課人數(shù)FROMSC結(jié)果:3SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…
FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]④聚集函數(shù)【例題5-21】查詢課程表中有多少門必修課(選修課的開課學(xué)期是空值)。代碼1:SELECTcount(Semester)必修課程數(shù)FROMCourse代碼2:SELECTcount(*)必修課程數(shù)FROMCourse
WHERESemesterISNOTNULL
結(jié)果:3SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]強(qiáng)調(diào):COUNT(*)
統(tǒng)計(jì)行數(shù),不考慮空值COUNT(列名)
統(tǒng)計(jì)該列不為空的行數(shù)COUNT(DISTINCT列名)統(tǒng)計(jì)該列不為空
并且不重復(fù)的行數(shù)?SELECT
count(distinctSemester)
FROM
Course④聚集函數(shù)【例題5-19】查詢學(xué)生學(xué)習(xí)所有課程獲得的最高分、最低分和平均分。SELECTmax(Grade)最高分,min(Grade)最低分,avg(Grade)平均分FROMSCSELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]習(xí)題1用SQL語句統(tǒng)計(jì)學(xué)校一共開設(shè)了多少門課程用SQL語句統(tǒng)計(jì)少數(shù)民族學(xué)生的人數(shù)用SQL語句統(tǒng)計(jì)學(xué)生有多少個(gè)民族用SQL語句統(tǒng)計(jì)學(xué)校課程的總學(xué)時(shí),以及最高學(xué)分、最低學(xué)分用SQL語句統(tǒng)計(jì)2號(hào)課程參加考試的人數(shù)用SQL語句統(tǒng)計(jì)1號(hào)課程的平均分COUNT()計(jì)數(shù)SUM()求和AVG()求平均分MAX()求最大值MIN()求最低分SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表
[WHERE<條件表達(dá)式>]習(xí)題1用SQL語句統(tǒng)計(jì)學(xué)校一共開設(shè)了多少門課程用SQL語句統(tǒng)計(jì)少數(shù)民族學(xué)生的人數(shù)用SQL語句統(tǒng)計(jì)學(xué)生有多少個(gè)民族用SQL語句統(tǒng)計(jì)學(xué)校課程的總學(xué)時(shí),以及最高學(xué)分、最低學(xué)分用SQL語句統(tǒng)計(jì)2號(hào)課程參加考試的人數(shù)用SQL語句統(tǒng)計(jì)1號(hào)課程的平均分selectcount(*)fromcourseselectcount(cno)fromcourseselectcount(*)fromstudentwherenation<>’漢族’selectcount(distinctnation)fromstudentselectsum(hours),max(credit),min(credit)fromcourseselectcount(grade)fromSCwherecno=2selectcount(*)fromSCwherecno=2andgradeisnotnullselectavg(grade)fromSCwherecno=1COUNT()計(jì)數(shù)、SUM()求和AVG()求平均分、MAX()求最大值
、MIN()求最低分?jǐn)?shù)據(jù)查詢語法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]⑤GROUPBY子句GROUPBY子句分組:細(xì)化聚集函數(shù)的作用對(duì)象未分組,聚集函數(shù)將作用于整個(gè)查詢結(jié)果分組后,聚集函數(shù)將分別作用于每個(gè)組,按一列或多列分組,值相等的為一組⑤GROUPBY子句【例題5-18】統(tǒng)計(jì)有多少名學(xué)生。SELECTcount(*)學(xué)生數(shù)FROMStudent【進(jìn)階】統(tǒng)計(jì)各個(gè)民族分別有多少名學(xué)生。SELECTnation,count(*)學(xué)生數(shù)FROMStudentgroupbynationGROUPBY分組后,聚集函數(shù)將分別作用于每個(gè)組值相等的為一組,分組統(tǒng)計(jì)⑤GROUPBY子句【例題5-19】查詢學(xué)生學(xué)習(xí)所有課程獲得的最高分、最低分和平均分。SELECTmax(Grade)最高分,min(Grade)最低分,avg(Grade)平均分FROMSC【進(jìn)階1例題5-22】查詢每門課程的最高分、最低分和平均分,顯示課程號(hào)和相應(yīng)的分?jǐn)?shù)。SELECTCno,max(Grade)最高分,min(Grade)最低分,avg(Grade)平均分FROM
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理鋁錠銷售合同范本
- 農(nóng)田租聘合同范例
- 個(gè)人債權(quán)轉(zhuǎn)移合同范本
- 企業(yè)logo設(shè)計(jì)合同范例
- 東莞市合同范例
- 農(nóng)村建筑包工合同范本
- pvc銷售合同范本
- 關(guān)于護(hù)欄加工合同范本
- 2025年度建筑工程施工許可證代辦承包合同范本
- LNG氣瓶檢驗(yàn)合同范例
- 中學(xué)生低碳生活調(diào)查報(bào)告
- 東軟入職合同
- 游泳池經(jīng)營(yíng)合作方案
- 擘畫未來技術(shù)藍(lán)圖
- 基于情報(bào)基本理論的公安情報(bào)
- 《“白山黑水”-東北三省》示范課課件(第1課時(shí))
- 孔氏家廟的社會(huì)調(diào)查報(bào)告
- 員工節(jié)能環(huán)保培訓(xùn)課件
- 華為公司的內(nèi)部審計(jì)制度
- 腫瘤醫(yī)院病歷書寫培訓(xùn)課件
- 《蓄電池培訓(xùn)》課件
評(píng)論
0/150
提交評(píng)論