




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQL數(shù)據(jù)查詢Loading……段浩07陳鑫04李立堂11SQL是什么?結(jié)構(gòu)化查詢語言標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)一體化高度自動(dòng)化數(shù)據(jù)的操作語句數(shù)據(jù)查詢使用top限制結(jié)果集基本結(jié)構(gòu)單表查詢多表連接查詢
子查詢根本查詢語句第一節(jié)fromhavingGroupbyselectwhereOrderbyascdescJoinonExists根本用詞5單表查詢第二節(jié)對(duì)查詢結(jié)果進(jìn)行排序3可對(duì)查詢結(jié)果進(jìn)行排序。排序子句為:ORDERBY<列名>[ASC|DESC][,<列名>…]說明:按<列名>進(jìn)行升序〔ASC或者省略〕或降序〔DESC〕排序。例25.查詢選修了‘c002’號(hào)課程的學(xué)生的學(xué)號(hào)及其成績(jī),查詢結(jié)果按成績(jī)降序排列。SELECT*FROMStudentORDERBYSdept,SageDESC
例26.查詢?nèi)w學(xué)生的信息,查詢結(jié)果按所在系的系名升序排列,同一系的學(xué)生按年齡降序排列SELECTSno,GradeFROMSCWHERECno='c002'ORDERBYGradeDESCSQL提供的計(jì)算函數(shù)有:COUNT〔*〕:統(tǒng)計(jì)表中元組個(gè)數(shù);COUNT〔[DISTINCT]<列名>〕:統(tǒng)計(jì)本列列值個(gè)數(shù);SUM〔[DISTINCT]<列名>〕:計(jì)算列值總和;AVG〔[DISTINCT]<列名>〕:計(jì)算列值平均值;MAX〔[DISTINCT]<列名>〕:求列值最大值;MIN〔[DISTINCT]<列名>〕:求列值最小值。上述函數(shù)中除COUNT〔*〕外,其他函數(shù)在計(jì)算過程中均忽略NULL值。使用計(jì)算函數(shù)匯總數(shù)據(jù)4SELECTCOUNT(*)as學(xué)生人數(shù)FROMStudent
例27.統(tǒng)計(jì)學(xué)生總?cè)藬?shù)。SELECTCOUNT(DISTINCTSno)
as選課人數(shù)FROMSCSELECTcount(*)as選課門數(shù),SUM(Grade)as總成績(jī)FROMSCWHERESno='1512101'例28.統(tǒng)計(jì)選修了課程的學(xué)生的人數(shù)。例29
.計(jì)算1512101號(hào)學(xué)生的選課門數(shù)和考試總成績(jī)。SELECTAVG(Grade)as平均成績(jī)
FROMSCWHERECno='C001'例30.計(jì)算’C001’號(hào)課程學(xué)生的考試平均成績(jī)。。SELECTMAX(Grade)最高分,MIN(Grade)最低分FROMSCWHERECno='C001'例31.查詢’C001’號(hào)課程的考試最高分和最低分。注意:計(jì)算函數(shù)不能出現(xiàn)在WHERE子句中。例題32.查詢“1512101”學(xué)生的選課門數(shù)、已考試課程門數(shù)考試最高分、最低分和平均分SELECTcount(*)選課門數(shù),count(grade)考試門數(shù),MAX(Grade)最高分,MIN(Grade)最低分FROMSCWHEREsno=‘1512101'對(duì)查詢結(jié)果進(jìn)行分組計(jì)算5作用:可以控制計(jì)算的級(jí)別:對(duì)全表還是對(duì)一組。目的:細(xì)化計(jì)算函數(shù)的作用對(duì)象。分組語句的一般形式: [GROUPBY<分組條件>] [HAVING<組過濾條件>]SELECTCnoas課程號(hào),COUNT(Sno)as選課人數(shù)FROMSCGROUPBYCno例33.統(tǒng)計(jì)每門課程的選課人數(shù),列出課程號(hào)和人數(shù)。SELECTSnoas學(xué)號(hào),
COUNT(*)as選課門數(shù),AVG(Grade)as平均成績(jī)FROMSCGROUPBYSno例34.查詢每名學(xué)生的選課門數(shù)和平均成績(jī)。注意:對(duì)查詢結(jié)果按Cno的值分組,所有具有相同Cno值的元組為一組,然后再對(duì)每一組使用COUNT計(jì)算,求得每組的學(xué)生人數(shù)。(1)使用GROUPBYSELECTSdept,count(*)asstudent,avg(sage)FROMstudentGROUPBYCno例35.統(tǒng)計(jì)每個(gè)系的學(xué)生人數(shù)和平均成績(jī)SELECTSdept,COUNT(*)女生人數(shù)
FROMStudentWhereSsex=‘女’GROUPBYSdept例36.帶where子句分組。統(tǒng)計(jì)每個(gè)系的女生人數(shù)(1)使用GROUPBYSELECTSdept,ssex,count(*)人數(shù)。Max(sage)最大年齡
FROMStudentGROUPBYSdept,ssexOrderbysdept例37,按多列分組。統(tǒng)計(jì)每個(gè)系的男生人數(shù)和女生人數(shù),以及男生的最大年齡和女孩最大年齡SnoCnoGrade151201C00190151201C00286151202C00190152103C00288152103C00185152103C00391152103C00474CnoCount(Sno)C0013C0022C0031C041SnoCnoGrade151201C00190151202C00190152103C00185151201C00286152103C00288152103C00391152103C00474SELECTSno,count(*)FROMSCGROUPBYSnoHAVINGCOUNT(*)>3SELECTSno,AVG(Grade)平均成績(jī),
COUNT(*)修課門數(shù)FROMSCGROUPBYSnoHAVINGavg(grade)>=80例38.查詢修了3門以上課程的學(xué)生的學(xué)號(hào)和選課門數(shù)例39.查詢修平均成績(jī)超過80的學(xué)生的學(xué)號(hào)、選課門數(shù)和平均成績(jī)(2)
使用HAVINGHAVING用于對(duì)分組自身進(jìn)行限制,它有點(diǎn)象WHERE子句,但它用于組而不是對(duì)單個(gè)記錄。SELECTSdept,count(*)人數(shù)FromstudentWheressex=‘男’GroupbysdeptHavingcount(*)>=2例40.統(tǒng)計(jì)每個(gè)系的男生人數(shù),只列出男生人數(shù)大于等于2的系多表連接查詢第三節(jié)一般格式為:[<表名1.>][<列名1>]<比較運(yùn)算符>[<表名2.>][<列名2>]假設(shè)一個(gè)查詢同時(shí)涉及兩個(gè)或兩個(gè)以上的表,那么稱之為連接查詢。連接查詢是關(guān)系數(shù)據(jù)庫(kù)中最主要的查詢連接查詢包括內(nèi)連接、外連接和交叉連接等。內(nèi)連接1SQL-92內(nèi)連接語法如下:
SELECT…FROM表名[INNER]JOIN
被連接表
ON連接條件執(zhí)行連接操作的過程:首先取表1中的第1個(gè)元組,然后從頭開始掃描表2,逐一查找滿足連接條件的元組,找到后就將表1中的第1個(gè)元組與該元組拼接起來,形成結(jié)果表中的一個(gè)元組。表2全部查找完畢后,再取表1中的第2個(gè)元組,然后再?gòu)念^開始掃描表2,…重復(fù)這個(gè)過程,直到表1中的全部元組都處理完畢為止。SELECT*fromstudentinnerjoinsconstudent.sno=sc.snoSELECTSno,AVG(Grade)平均成績(jī),
COUNT(*)修課門數(shù)FROMSCGROUPBYSnoHAVINGavg(grade)>=80例41.查詢每個(gè)學(xué)生及其選課的詳細(xì)信息例42.去掉例41中的重復(fù)列SELECTSname,Cno,GradeFROMStudentJOINSCONStudent.Sno=SC.SnoWHERESdept='計(jì)算機(jī)系'例43.查詢計(jì)算機(jī)系學(xué)生的修課情況,要求列出學(xué)生的名字、所修課的課程號(hào)和成績(jī)。SELECTSname,Cname,GradeFROMStudentsJOINSCONs.Sno=SC.SnoJOINCoursecONc.Cno=SC.CnoWHERESdept='信息系'ANDCname=‘計(jì)算機(jī)文化學(xué)'例44.查詢信息系修了計(jì)算機(jī)文化學(xué)課程的學(xué)生的修課成績(jī),要求列出學(xué)生姓名、課程名和成績(jī)。SELECTSname,SdeptFROMStudentSJOINSCONS.Sno=SC.SnoJOINCourseCONC.Cno=SC.cnoWHERECname=‘java'例45.查詢所有修了java課程的學(xué)生的修課情況,要求列出學(xué)生姓名和所在的系。SELECTSdept,AVG(grade)asaveragegradeFROMStudentSJOINSCONS.Sno=SC.Sno
GROUPBYSdept例46.用有分組的多表連接查詢。統(tǒng)計(jì)每個(gè)系學(xué)生考試平均成績(jī)。SELECTSno,COUNT(*)asTotal,AVG(Grade)
asAvgrade,MAX(Grade)asMAXgrade,MIN(Grade)asMINgradeFROMStudentSJOINSCONS.Sno=SC.SnoWHERE=Sdept=‘計(jì)算機(jī)系’GROUPBYcno例47.用有分組的多表連接查詢。統(tǒng)計(jì)計(jì)算機(jī)系學(xué)生每門課程的選課人數(shù)、平均成績(jī)、最高成績(jī)、最低成績(jī)。自連接2為特殊的內(nèi)連接相互連接的表物理上為同一張表。必須為兩個(gè)表取別名,使之在邏輯上成為兩個(gè)表。SELECTS2.Sname,S2.SdeptFROMStudentS1JOINStudentS2ONS1.Sdept=S2.SdeptWHERES1.Sname=‘劉晨’
ANDS2.Sname!=‘劉晨’例48.查詢與劉晨在同一個(gè)系學(xué)習(xí)的學(xué)生的姓名和所在的系。SELECTC1.Cname,C2.CreditFROMCourseC1JOINCourseC2ONCourseC1.Credit=C2.CreditWHEREC2.Cname=‘?dāng)?shù)據(jù)結(jié)構(gòu)’例49,查詢與數(shù)據(jù)結(jié)構(gòu)學(xué)風(fēng)相同的課程的課程名和學(xué)分外連接3只限制一張表中的數(shù)據(jù)必須滿足連接條件,而另一張表中數(shù)據(jù)可以不滿足連接條件。
ANSI方式的外連接的語法格式為:
FROM表1LEFT|RIGHT[OUTER]JOIN表2ON<連接條件>theta方式的外連接的語法格式為:左外連接:
FROM表1,表2WHERE[表1.]列名(+)=[表2.]列名右外連接:
FROM表1,表2WHERE[表1.]列名=[表2.]列名(+)
SELECTStudent.Sno,Sname,Cno,GradeFROMStudentLEFTOUTERJOINSCONStudent.Sno=SC.Sno例50.查詢學(xué)生的修課情況,包括修了課程的學(xué)生和沒有修課的學(xué)生。SELECTStudent.Sno,Sname,Cno,GradeFROMSCRIGHTOUTERJOINstudentONStudent.Sno=SC.Sno右外連接使用top限制結(jié)果集第四節(jié)N為非負(fù)數(shù)Topn:表示取查詢結(jié)構(gòu)的前n行Topnpercnet:表示取查詢結(jié)構(gòu)的前n%行數(shù)據(jù)Withties:表示包括并列的結(jié)果?!瞭op寫在select后面,假設(shè)有distinc,那么在distinc之后〕一般格式:TOPN[PERCENT][WITHTIES]SELECTtop3sname,sage,sdeptFromstudentOrderbysagedesc例52.查詢年齡最大的三個(gè)學(xué)生的姓名、年齡及所在系
。SELECTtop3withtiessname,sdept,gradeFromstudentsjoinscons.sno=sc.snoJoincoursecono=sc.snoWherecname=‘JAVA’Orerbygradedesc例53,查詢JAVA課程考試成績(jī)?cè)谇叭膶W(xué)生姓名成績(jī)及所在系。子查詢第五節(jié)在SQL語言中,一個(gè)SELECT-FROM-WHERE語句稱為一個(gè)查詢塊。子查詢是一個(gè)SELECT查詢,它嵌套在SELECT、INSERT、UPDATE、DELETE語句的WHERE或HAVING子句內(nèi),或其它子查詢中子查詢的SELECT查詢總是使用圓括號(hào)括起來。一般格式為:列名[NOT]IN(子查詢)SELECTSno,Sname,Sdept
FROMStudentWHERESdeptIN(SELECTSdeptFROMStudentWHERESname=‘劉晨’)ANDSname!=‘劉晨例54.查詢與劉晨在同一個(gè)系的學(xué)生。使用子查詢進(jìn)行基于集合的測(cè)試1一般格式為:列名[NOT]IN(子查詢)先確定劉晨所在系SELECTSno,SnameFROMStudent WHERESnoIN (SELECTSnoFROMSC WHEREGrade>90)例55.查詢成績(jī)?yōu)榇笥?0分的學(xué)生的學(xué)號(hào)、姓名。SELECTSno,SnameFROMStudent WHERESnoIN (SELECTSnoFROMSC WHERECnoIN (SELECTCnoFROMCourse WHERECname=‘JAVA'))例56.查詢選修了“JAVA〞課程的學(xué)生的學(xué)號(hào)、姓名。SELECTSno學(xué)號(hào),COUNT(*)選課門數(shù),AVG(GRADE)平均成績(jī)
FROMSC
WHERESnoin(SelectsnoFROMSCJOINcoursecOnC.cno=SC.cnoWhereCname=‘java’)GroupbySno例57.統(tǒng)計(jì)選修了“JAVA〞課程的學(xué)生的選課門數(shù)、平均成績(jī)。使用子查詢進(jìn)行比較測(cè)試2帶比較運(yùn)算符的子查詢指父查詢與子查詢之間用比較運(yùn)算符連接,當(dāng)用戶能確切知道內(nèi)層查詢返回的是單值時(shí),可用>、<、=、>=、<=、<>運(yùn)算符。一般格式:Where表達(dá)式比較運(yùn)算符〔子查詢〕SELECTSno,GradeFROMSC WHERECno='c005‘a(chǎn)ndGrade>(SELECTAVG(Grade)fromSCWHERECno='c005')例58.查詢修了‘c005’課程且成績(jī)高于此課程的平均成績(jī)的學(xué)生的學(xué)號(hào)和成績(jī)。SELECTSname,sageFROMstudentWHEREsdept=‘計(jì)算機(jī)系‘a(chǎn)ndsage=(SELECTmax(sage)fromstudentWHEREsdept=‘計(jì)算機(jī)系')例59.查詢計(jì)算機(jī)系年齡最大的學(xué)生的姓名和年齡。SELECTSname,sdept,grade
FROMstudentsjoinscons.sno=sc.snoJoincoursecono=oWHEREcname=‘java
‘a(chǎn)ndgrade>(SELECTavg(grade)fromscjoincoursecono=oWHEREcname=‘java')例60.查詢java考試成績(jī)高于平均成績(jī)的學(xué)生的姓名、所在系和java成績(jī)使用子查詢進(jìn)行存在性測(cè)試3一般使用EXISTS謂詞。帶EXISTS謂詞的子查詢不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初三上學(xué)期英語聽力教學(xué)計(jì)劃
- 新概念英語第一冊(cè)跨文化交流計(jì)劃
- 冀教版小學(xué)英語課堂管理計(jì)劃
- 醫(yī)院侵襲性肺曲霉病臨床特點(diǎn)及預(yù)后分析
- 七年級(jí)英語復(fù)習(xí)計(jì)劃及時(shí)間安排
- 人教版英語課程資源整合計(jì)劃
- 小學(xué)繪畫技能提升工作計(jì)劃
- 家居行業(yè)材料投入與優(yōu)化措施
- 基于D區(qū)CT影像分析預(yù)測(cè)急性胰腺炎進(jìn)展的價(jià)值研究
- 北京市朝陽(yáng)區(qū)2025屆高三下學(xué)期4月六校聯(lián)考英語試題(解析版)
- 護(hù)士進(jìn)修匯報(bào)護(hù)理專業(yè)發(fā)展趨勢(shì)分析
- KISSSOFT操作與齒輪設(shè)計(jì)培訓(xùn)教程
- 廣東省廣州市越秀區(qū)2024年中考二模語文試卷附答案
- 城鄉(xiāng)規(guī)劃原理題目及答案
- 25道中國(guó)建筑商務(wù)合約經(jīng)理崗位常見面試問題含HR常問問題考察點(diǎn)及參考回答
- JGT116-2012 聚碳酸酯(PC)中空板
- DBJ-43T507-2019湖南省建筑物移動(dòng)通信基礎(chǔ)設(shè)施建設(shè)標(biāo)準(zhǔn)
- 《華為國(guó)際化之路》課件
- 高空作業(yè)安全責(zé)任協(xié)議書防盜網(wǎng)
- 關(guān)于地下室滲漏水問題的總結(jié)及堵漏措施
- (完整版)聚乙烯課件
評(píng)論
0/150
提交評(píng)論