




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
SQLServer數(shù)據庫實踐SQL語言一般分四類數(shù)據定義語言(DDL,DataDefinitionLanguage)數(shù)據操縱語言(DML,DataManipulationLanguage)數(shù)據查詢語言(DQL,DataQuery
Language)數(shù)據控制語言(DCL,DataControlLanguage)(+事務)√√√√數(shù)據查詢語法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]stuDB數(shù)據庫三張表數(shù)據查詢目錄1、單表查詢2、連接查詢3、嵌套查詢4、集合查詢5、基于派生表的查詢1、單表查詢單表查詢僅涉及一個表,又分為:選擇表中的若干列選擇表中的若干元組
ORDERBY排序子句聚集函數(shù)
GROUPBY分組子句①
選擇表中的若干列【例題5-1】查詢全體學生的姓名和民族。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]SELECTName,NationFROM
Student①
選擇表中的若干列【例題5-2】查詢全體學生的姓名、民族和性別。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]SELECTName,Nation,SexFROM
Student注意:列的順序①
選擇表中的若干列【例題5-3】查詢全體學生的詳細信息。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]SELECT
Sno,Name,Sex,Nation,Birthday
FROM
Student或者SELECT
*
FROM
Student習題1.查詢所有課程的課程名和學分2.查詢課程的所有信息查詢語法SELECT
<輸出列表>]…FROM數(shù)據源列表習題1.查詢所有課程的課程名和學分
selectcname,creditfromcourse2.查詢課程的所有信息查詢語法SELECT
<輸出列表>]…FROM數(shù)據源列表習題1.查詢所有課程的課程名和學分
selectcname,creditfromcourse2.查詢課程的所有信息
select*fromcourseselectCno,cname,hours,credit,Semesterfromcourse查詢語法SELECT
<輸出列表>]…FROM數(shù)據源列表①選擇表中的若干列查詢經過計算的值SELECT子句的<輸出列表>可以為:算術表達式字符串常量函數(shù)列別名SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]①
選擇表中的若干列【例題5-4】查詢學生的姓名及年齡。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]SELECT
Name,YEAR(GETDATE())-YEAR(Birthday)
FROM
Student①
選擇表中的若干列【例題5-4】查詢學生的姓名及年齡。GETDATE()函數(shù)取系統(tǒ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():返回服務器當前系統(tǒng)日期和時間
year(DATA):返回日期中的年
month(DATA):返回日期中的月
day(DATA):返回日期中的日②
選擇表中的若干元組【例題5-5】查詢學生分布在哪些民族
SELECTNationFROMStudent等價于:SELECTALLNationFROMStudent SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]②
選擇表中的若干元組【例題5-5】查詢學生分布在哪些民族
SELECTDISTINCTNationFROMStudent SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]說明:DISTINCT關鍵詞,去掉查詢結果中重復的行②
選擇表中的若干元組【例題5-7】查詢哪些學生是少數(shù)民族,顯示學生姓名和民族。SELECTName,NationFROMStudentWHERENation<>'漢族'SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]WHERE
子句中常用的查詢運算符查詢條件謂詞比較=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比較運算符確定范圍BETWEENAND,NOTBETWEENAND確定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重條件(邏輯運算)AND,OR,NOT②
選擇表中的若干元組【例題5-8】查詢年齡在19~23歲(包括19和23歲)之間的學生的學號、姓名、出生日期。1:SELECTSno,Name,BirthdayFROMStudent
WHEREYEAR(GETDATE())-YEAR(Birthday)BETWEEN19AND232:SELECTSno,Name,BirthdayFROMStudent
WHEREYEAR(GETDATE())-YEAR(Birthday)>=19
ANDYEAR(GETDATE())-YEAR(Birthday)<=23操作練習實驗4單表查詢(一)1~5題
②
選擇表中的若干元組【例題5-9】查詢民族為“漢族”或者“滿族”的學生詳細信息。SELECT*FROMStudentWHERENationin('漢族','滿族')或者SELECT*FROMStudentWHERENation='漢族'orNation='滿族'②
選擇表中的若干元組【例題5-10】查詢哪些學生選課了還沒有考試成績,顯示學號,課程號。SELECTSno,CnoFROMSCWHEREGradeisNULL判斷空值不能用等號=②
選擇表中的若干元組-模糊查詢【例題5-11】查詢哪些學生姓名中含有“南”字。SELECT*FROMStudentWHERENameLIKE'%南%'模糊查詢通配符:%:任意長度_:單個字符②
選擇表中的若干元組-模糊查詢【例題5-13】找出所有姓“張”和姓“江”的員工信息。SELECT*FROMStudentWHERENameLIKE'[張,江]%'SELECT*FROMStudentWHEREsubstring(Name,1,1)IN('張','江')SELECT*FROMStudentWHEREleft(Name,1)IN('張','江')模糊查詢通配符:%:任意長度_:單個字符常用字符串函數(shù)Left(字符表達式,整數(shù)):截取從左側開始指定位數(shù)的子字符串Right(字符表達式,整數(shù)):截取從右側開始指定位數(shù)的子字符串Substring(字符表達式,起始位置,n):從任意位置取子串,截取從起始位置開始的n個字符Ltrim(字符表達式):去掉字符表達式左側(前面)的空格Rtrim(字符表達式):去掉字符表達式右側(尾部)的空格操作練習實驗4單表查詢(一)
SQLServer數(shù)據庫實踐SQL語言一般分四類數(shù)據定義語言(DDL,DataDefinitionLanguage)數(shù)據操縱語言(DML,DataManipulationLanguage)數(shù)據查詢語言(DQL,DataQuery
Language)數(shù)據控制語言(DCL,DataControlLanguage)(+事務)√√√√數(shù)據查詢語法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]stuDB數(shù)據庫三張表數(shù)據查詢目錄1、單表查詢2、連接查詢3、嵌套查詢4、集合查詢5、基于派生表的查詢1、單表查詢單表查詢僅涉及一個表,又分為:選擇表中的若干列選擇表中的若干元組
ORDERBY排序子句聚集函數(shù)
GROUPBY分組子句√√③ORDERBY排序子句【例題5-16】查詢選修了1號課程的學生學號及其成績,查詢結果按照成績降序排列。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]③ORDERBY排序子句【例題5-16】查詢選修了1號課程的學生學號及其成績,查詢結果按照成績降序排列。SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]SELECTSno,GradeFROMSCWHERECno=1ORDERBYGradeDESC分數(shù)降序表中數(shù)據順序③ORDERBY排序子句【例題5-17】查詢學生的學號、姓名、民族、出生日期,查詢結果按照民族升序排列,同一民族的按照年齡降序排列。SELECTSno,Name,Nation,BirthdayFROMStudentORDERBYNationASC,BirthdayASC
SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]判斷題:orderby子句中如果沒有寫排序字段,默認升序④聚集函數(shù)函數(shù)功能COUNT(*)統(tǒng)計元組(行、記錄)數(shù)COUNT(<列名>)統(tǒng)計該列(字段、屬性)值不為空的元組數(shù)COUNT(DISTINCT<列名>)統(tǒng)計該列值不為空,并且值不重復的元組數(shù)SUM(<列名>)計算一列值的總和(此列必須為數(shù)值型)AVG(<列名>)計算一列值的平均值(此列必須為數(shù)值型)MAX(<列名>)求一列值的最大值MIN(<列名>)求一列值的最小值五個聚集函數(shù),只有count()函數(shù)多種用法④聚集函數(shù)【例題5-18】統(tǒng)計有多少名學生。代碼1:SELECTcount(*)FROMStudent代碼2:SELECTcount(*)學生數(shù)FROMStudentSELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]④聚集函數(shù)【例題5-20】查詢有多少學生選修了課程。SELECTcount(*)FROMSC結果:5SELECTcount(DISTINCTSno)選課人數(shù)FROMSC結果:3SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…
FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]④聚集函數(shù)【例題5-21】查詢課程表中有多少門必修課(選修課的開課學期是空值)。代碼1:SELECTcount(Semester)必修課程數(shù)FROMCourse代碼2:SELECTcount(*)必修課程數(shù)FROMCourse
WHERESemesterISNOTNULL
結果:3SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]強調:COUNT(*)
統(tǒng)計行數(shù),不考慮空值COUNT(列名)
統(tǒng)計該列不為空的行數(shù)COUNT(DISTINCT列名)統(tǒng)計該列不為空
并且不重復的行數(shù)?SELECT
count(distinctSemester)
FROM
Course④聚集函數(shù)【例題5-19】查詢學生學習所有課程獲得的最高分、最低分和平均分。SELECTmax(Grade)最高分,min(Grade)最低分,avg(Grade)平均分FROMSCSELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]習題1用SQL語句統(tǒng)計學校一共開設了多少門課程用SQL語句統(tǒng)計少數(shù)民族學生的人數(shù)用SQL語句統(tǒng)計學生有多少個民族用SQL語句統(tǒng)計學校課程的總學時,以及最高學分、最低學分用SQL語句統(tǒng)計2號課程參加考試的人數(shù)用SQL語句統(tǒng)計1號課程的平均分COUNT()計數(shù)SUM()求和AVG()求平均分MAX()求最大值MIN()求最低分SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表
[WHERE<條件表達式>]習題1用SQL語句統(tǒng)計學校一共開設了多少門課程用SQL語句統(tǒng)計少數(shù)民族學生的人數(shù)用SQL語句統(tǒng)計學生有多少個民族用SQL語句統(tǒng)計學校課程的總學時,以及最高學分、最低學分用SQL語句統(tǒng)計2號課程參加考試的人數(shù)用SQL語句統(tǒng)計1號課程的平均分selectcount(*)fromcourseselectcount(cno)fromcourseselectcount(*)fromstudentwherenation<>’漢族’selectcount(distinctnation)fromstudentselectsum(hours),max(credit),min(credit)fromcourseselectcount(grade)fromSCwherecno=2selectcount(*)fromSCwherecno=2andgradeisnotnullselectavg(grade)fromSCwherecno=1COUNT()計數(shù)、SUM()求和AVG()求平均分、MAX()求最大值
、MIN()求最低分數(shù)據查詢語法SELECT[ALL|DISTINCT][TOPn|PERCENT]<輸出列表>]…FROM數(shù)據源列表[WHERE<條件表達式>][GROUPBY<分組表達式>[HAVING<條件表達式>]][ORDERBY<排序表達式>[ASC|DESC]]⑤GROUPBY子句GROUPBY子句分組:細化聚集函數(shù)的作用對象未分組,聚集函數(shù)將作用于整個查詢結果分組后,聚集函數(shù)將分別作用于每個組,按一列或多列分組,值相等的為一組⑤GROUPBY子句【例題5-18】統(tǒng)計有多少名學生。SELECTcount(*)學生數(shù)FROMStudent【進階】統(tǒng)計各個民族分別有多少名學生。SELECTnation,count(*)學生數(shù)FROMStudentgroupbynationGROUPBY分組后,聚集函數(shù)將分別作用于每個組值相等的為一組,分組統(tǒng)計⑤GROUPBY子句【例題5-19】查詢學生學習所有課程獲得的最高分、最低分和平均分。SELECTmax(Grade)最高分,min(Grade)最低分,avg(Grade)平均分FROMSC【進階1例題5-22】查詢每門課程的最高分、最低分和平均分,顯示課程號和相應的分數(shù)。SELECTCno,max(Grade)最高分,min(Grade)最低分,avg(Grade)平均分FROM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年循環(huán)定科考試題及答案
- 2025年基公項目考試試題及答案
- 2025年印后裝訂考試題及答案
- 2025年gsp各崗位培訓試題及答案
- 手動打磨機操作規(guī)程
- 2025年郵政社招筆試試題及答案
- 2025年鉗工安規(guī)考試題及答案
- 2025年公司最難面試試題及答案
- 中級游泳社會體育指導員復習測試有答案
- 2025年發(fā)展崗面試試題及答案
- 《錢三強-杰出課件》
- 山東2025年山東大學輔導員招聘筆試歷年參考題庫附帶答案詳解
- 羽毛球運動體育健身
- 2025年常德科技職業(yè)技術學院單招職業(yè)適應性測試題庫帶答案
- 電子教案-《網絡設備配置與管理》
- 溫州2025年浙江溫州市生態(tài)環(huán)境科學研究院招聘筆試歷年參考題庫附帶答案詳解
- 2.1揭開情緒的面紗 課件 2024-2025學年統(tǒng)編版道德與法治七年級下冊
- 2025年湖南省中職《計算機應用基礎》普測核心考點試題庫500題(重點)
- 全國計算機等級考試《二級MySQL數(shù)據庫程序設計》專用教材【考綱分析+考點精講+真題演練+強化習題】
- 特色天麻種源基地建設實施方案
- 北京市青年宮招考工作人員高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論