




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQLServer數(shù)據(jù)庫(kù)實(shí)踐SQL語(yǔ)言一般分四類數(shù)據(jù)定義語(yǔ)言(DDL,DataDefinitionLanguage)數(shù)據(jù)操縱語(yǔ)言(DML,DataManipulationLanguage)數(shù)據(jù)查詢語(yǔ)言(DQL,DataQuery
Language)數(shù)據(jù)控制語(yǔ)言(DCL,DataControlLanguage)(+事務(wù))√√√√數(shù)據(jù)查詢語(yǔ)法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]stuDB數(shù)據(jù)庫(kù)三張表數(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.查詢課程的所有信息查詢語(yǔ)法SELECT
<輸出列表>]…FROM數(shù)據(jù)源列表習(xí)題1.查詢所有課程的課程名和學(xué)分
selectcname,creditfromcourse2.查詢課程的所有信息查詢語(yǔ)法SELECT
<輸出列表>]…FROM數(shù)據(jù)源列表習(xí)題1.查詢所有課程的課程名和學(xué)分
selectcname,creditfromcourse2.查詢課程的所有信息
select*fromcourseselectCno,cname,hours,credit,Semesterfromcourse查詢語(yǔ)法SELECT
<輸出列表>]…FROM數(shù)據(jù)源列表①選擇表中的若干列查詢經(jīng)過(guò)計(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]]說(shuō)明: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é)生選課了還沒(méi)有考試成績(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è)開(kāi)始指定位數(shù)的子字符串Right(字符表達(dá)式,整數(shù)):截取從右側(cè)開(kāi)始指定位數(shù)的子字符串Substring(字符表達(dá)式,起始位置,n):從任意位置取子串,截取從起始位置開(kāi)始的n個(gè)字符Ltrim(字符表達(dá)式):去掉字符表達(dá)式左側(cè)(前面)的空格Rtrim(字符表達(dá)式):去掉字符表達(dá)式右側(cè)(尾部)的空格操作練習(xí)實(shí)驗(yàn)4單表查詢(一)
SQLServer數(shù)據(jù)庫(kù)實(shí)踐SQL語(yǔ)言一般分四類數(shù)據(jù)定義語(yǔ)言(DDL,DataDefinitionLanguage)數(shù)據(jù)操縱語(yǔ)言(DML,DataManipulationLanguage)數(shù)據(jù)查詢語(yǔ)言(DQL,DataQuery
Language)數(shù)據(jù)控制語(yǔ)言(DCL,DataControlLanguage)(+事務(wù))√√√√數(shù)據(jù)查詢語(yǔ)法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據(jù)源列表[WHERE<條件表達(dá)式>][GROUPBY<分組表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<排序表達(dá)式>[ASC|DESC]]stuDB數(shù)據(jù)庫(kù)三張表數(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子句中如果沒(méi)有寫(xiě)排序字段,默認(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】查詢課程表中有多少門(mén)必修課(選修課的開(kāi)課學(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語(yǔ)句統(tǒng)計(jì)學(xué)校一共開(kāi)設(shè)了多少門(mén)課程用SQL語(yǔ)句統(tǒng)計(jì)少數(shù)民族學(xué)生的人數(shù)用SQL語(yǔ)句統(tǒng)計(jì)學(xué)生有多少個(gè)民族用SQL語(yǔ)句統(tǒng)計(jì)學(xué)校課程的總學(xué)時(shí),以及最高學(xué)分、最低學(xué)分用SQL語(yǔ)句統(tǒng)計(jì)2號(hào)課程參加考試的人數(shù)用SQL語(yǔ)句統(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語(yǔ)句統(tǒng)計(jì)學(xué)校一共開(kāi)設(shè)了多少門(mén)課程用SQL語(yǔ)句統(tǒng)計(jì)少數(shù)民族學(xué)生的人數(shù)用SQL語(yǔ)句統(tǒng)計(jì)學(xué)生有多少個(gè)民族用SQL語(yǔ)句統(tǒng)計(jì)學(xué)校課程的總學(xué)時(shí),以及最高學(xué)分、最低學(xué)分用SQL語(yǔ)句統(tǒng)計(jì)2號(hào)課程參加考試的人數(shù)用SQL語(yǔ)句統(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ù)查詢語(yǔ)法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】查詢每門(mén)課程的最高分、最低分和平均分,顯示課程號(hào)和相應(yīng)的分?jǐn)?shù)。SELECTCno,max(Grade)最高分,min(Grade)最低分,avg(Grade)平均分FROM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)作物種子繁育的案例分析試題及答案
- 微生物檢驗(yàn)的工作環(huán)境與試題及答案
- 項(xiàng)目管理專業(yè)人士考題分析試題及答案
- 跨界思維提升2025年注冊(cè)會(huì)計(jì)師考試能力試題及答案
- 銀行法規(guī)遵循對(duì)Risk管理的影響分析試題及答案
- 花藝中的情感表達(dá)的試題及答案
- 2024年項(xiàng)目管理職業(yè)規(guī)劃建議試題及答案
- 項(xiàng)目管理中的競(jìng)爭(zhēng)策略解析試題及答案
- 2024項(xiàng)目管理考試的必要準(zhǔn)備知識(shí)試題及答案
- 全科醫(yī)生的專業(yè)能力與醫(yī)學(xué)科技的發(fā)展關(guān)系探討
- 浙江公路技師學(xué)院招聘考試真題2024
- 中職生規(guī)范行為主題班會(huì)
- 員工廉潔自律行為規(guī)范
- 注冊(cè)稅務(wù)師考前沖刺試卷帶答案2025
- 華為管理手冊(cè)-新員工培訓(xùn)
- 豬場(chǎng)轉(zhuǎn)讓合同范本
- (二模)石家莊市2025屆高三教學(xué)質(zhì)量檢測(cè)(二)生物試卷(含標(biāo)準(zhǔn)答案)
- 有關(guān)電除顫的試題及答案
- 腦卒中中西醫(yī)結(jié)合護(hù)理
- 2025北京外國(guó)語(yǔ)大學(xué)輔導(dǎo)員考試題庫(kù)
- 2023年江蘇省高中信息技術(shù)青年教師教學(xué)基本功大賽試卷
評(píng)論
0/150
提交評(píng)論