




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)習(xí)SQL語(yǔ)法對(duì)表格數(shù)據(jù)進(jìn)行分析SQL(StructuredQueryLanguage)是一種用于管理和操作關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)編程語(yǔ)言。通過(guò)學(xué)習(xí)SQL語(yǔ)法,我們可以輕松地對(duì)表格數(shù)據(jù)進(jìn)行分析,挖掘出有價(jià)值的信息。本篇文章將帶你了解SQL語(yǔ)法的基本知識(shí),并展示如何使用SQL對(duì)表格數(shù)據(jù)進(jìn)行分析。一、SQL語(yǔ)法基礎(chǔ)1.1數(shù)據(jù)類(lèi)型在SQL中,數(shù)據(jù)類(lèi)型用于定義表格中列的數(shù)據(jù)類(lèi)型。常見(jiàn)的數(shù)據(jù)類(lèi)型包括:整數(shù)類(lèi)型:INTEGER、SMALLINT、TINYINT浮點(diǎn)數(shù)類(lèi)型:FLOAT、DOUBLE、DECIMAL日期和時(shí)間類(lèi)型:DATE、TIME、DATETIME字符串類(lèi)型:CHAR、VARCHAR、TEXT二進(jìn)制類(lèi)型:BINARY、VARBINARY、BLOB1.2表結(jié)構(gòu)表結(jié)構(gòu)是指一個(gè)表格的列名、數(shù)據(jù)類(lèi)型等信息。創(chuàng)建表格時(shí),需要指定表名和列名,以及相應(yīng)的數(shù)據(jù)類(lèi)型。例如:```sqlCREATETABLEstudents(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(50)NOTNULL,ageINT,scoreFLOAT1.3插入數(shù)據(jù)向表格中插入數(shù)據(jù)使用INSERTINTO語(yǔ)句。例如:```sqlINSERTINTOstudents(name,age,score)VALUES(’張三’,20,90.5);1.4查詢數(shù)據(jù)查詢數(shù)據(jù)使用SELECT語(yǔ)句。例如:```sqlSELECT*FROMstudents;1.5更新數(shù)據(jù)更新數(shù)據(jù)使用UPDATE語(yǔ)句。例如:```sqlUPDATEstudentsSETscore=95WHEREname=‘張三’;1.6刪除數(shù)據(jù)刪除數(shù)據(jù)使用DELETE語(yǔ)句。例如:```sqlDELETEFROMstudentsWHEREname=‘張三’;二、SQL語(yǔ)法進(jìn)階2.1聚合函數(shù)聚合函數(shù)用于對(duì)多行數(shù)據(jù)進(jìn)行計(jì)算,常見(jiàn)的聚合函數(shù)有:COUNT:計(jì)算非空行數(shù)SUM:計(jì)算總和AVG:計(jì)算平均值MAX:計(jì)算最大值MIN:計(jì)算最小值例如,查詢學(xué)生成績(jī)的平均值:```sqlSELECTAVG(score)FROMstudents;2.2排序排序使用ORDERBY語(yǔ)句。例如:```sqlSELECT*FROMstudentsORDERBYageDESC;2.3過(guò)濾過(guò)濾使用WHERE語(yǔ)句。例如:```sqlSELECT*FROMstudentsWHEREscore>=90;2.4連接連接用于合并兩個(gè)或多個(gè)表格的數(shù)據(jù)。SQL支持三種連接類(lèi)型:內(nèi)連接(INNERJOIN):只有兩個(gè)表格中有匹配的行才會(huì)返回結(jié)果左連接(LEFTJOIN):即使右表中沒(méi)有匹配的行,也會(huì)返回左表中的所有行右連接(RIGHTJOIN):即使左表中沒(méi)有匹配的行,也會(huì)返回右表中的所有行例如,查詢學(xué)生和課程的信息:```sqlSELECT,FROMstudentsINNERJOINcoursesONstudents.id=courses.student_id;三、SQL語(yǔ)法高級(jí)3.1子查詢子查詢是一種在查詢中嵌套查詢的方式。子查詢可以用在SELECT、WHERE、FROM等語(yǔ)句中。例如:```sqlSELECT*FROMstudentsWHEREage=(SELECTAVG(age)FROMstudents);3.2聯(lián)合查詢聯(lián)合查詢用于將兩個(gè)或多個(gè)SELECT語(yǔ)句的結(jié)果合并。使用UNION關(guān)鍵字。例如:```sqlSELECTnameFROMstudentsSELECTnameFROMteachers;3.3事務(wù)事務(wù)是一系列操作,要么全部成功,要么全部失敗。使用BEGINTRANSACTION、COMMIT和ROLLBACK語(yǔ)句來(lái)##一、例題與解題方法1.查詢學(xué)生的姓名和年齡問(wèn)題:查詢學(xué)生的姓名和年齡。解題方法:```sqlSELECTname,ageFROMstudents;2.查詢平均成績(jī)大于90的學(xué)生姓名和平均成績(jī)問(wèn)題:查詢平均成績(jī)大于90的學(xué)生姓名和平均成績(jī)。解題方法:```sqlSELECTname,AVG(score)asaverage_scoreFROMstudentsGROUPBYnameHAVINGaverage_score>90;3.查詢年齡在20到25歲之間的學(xué)生姓名和年齡問(wèn)題:查詢年齡在20到25歲之間的學(xué)生姓名和年齡。解題方法:```sqlSELECTname,ageFROMstudentsWHEREageBETWEEN20AND25;4.查詢成績(jī)排名前3的學(xué)生姓名和成績(jī)問(wèn)題:查詢成績(jī)排名前3的學(xué)生姓名和成績(jī)。解題方法:```sqlSELECTname,scoreFROMstudentsORDERBYscoreDESCLIMIT3;5.查詢選修了所有課程的學(xué)生姓名問(wèn)題:查詢選修了所有課程的學(xué)生姓名。解題方法:```sqlSELECTFROMstudentsJOINstudent_coursesONstudents.id=student_courses.student_idGROUPBYstudents.idHAVINGCOUNT(DISTINCTstudent_courses.course_id)=(SELECTCOUNT(*)FROMcourses);6.查詢同時(shí)滿足成績(jī)大于90和年齡大于20的學(xué)生姓名、年齡和成績(jī)問(wèn)題:查詢同時(shí)滿足成績(jī)大于90和年齡大于20的學(xué)生姓名、年齡和成績(jī)。解題方法:```sqlSELECTname,age,scoreFROMstudentsWHEREscore>90ANDage>20;7.查詢每個(gè)學(xué)生的姓名、年齡和選修的課程名稱問(wèn)題:查詢每個(gè)學(xué)生的姓名、年齡和選修的課程名稱。解題方法:```sqlSELECT,students.age,ascourse_nameFROMstudentsJOINstudent_coursesONstudents.id=student_courses.student_idJOINcoursesONstudent_courses.course_id=courses.id;8.查詢至少有5個(gè)學(xué)生的課程名稱問(wèn)題:查詢至少有5個(gè)學(xué)生的課程名稱。解題方法:```sqlSELECTascourse_nameFROMcoursesJOINstudent_coursesONcourses.id=student_courses.course_idGROUPBYcourses.idHAVINGCOUNT(student_courses.student_id)>=5;9.查詢年齡最大和最小的一對(duì)學(xué)生姓名和年齡問(wèn)題:查詢年齡最大和最小的一對(duì)學(xué)生姓名和年齡。解題方法:```sqlSELECTASstudent_name,students.ageASstudent_age,teachers.ageASteacher_ageFROMstudents,teachersWHEREstudents.age=(SELECTMAX(age)FROMstudents)ANDteachers.age=(SELECTMIN(age)FROMteachers);10.查詢每個(gè)學(xué)生的姓名、年齡和對(duì)應(yīng)的班主任姓名問(wèn)題:查詢每個(gè)學(xué)生的姓名、年齡和對(duì)應(yīng)的班主任姓名。解題方法:```sqlSELECTASstudent_name,students.age,ASteacher_nameFROMstudentsJOINstudent_teachersONstudents.id=student_teachers.student_idJOINteachersONstudent_teachers.teacher_id=teachers.id;11.查詢選修了至少兩門(mén)課程的學(xué)生姓名和選修的課程數(shù)量問(wèn)題:查詢選修了至少兩門(mén)課程的學(xué)生姓名和選修的課程數(shù)量。解題方法:```sqlSELECTstudents.##一、經(jīng)典習(xí)題與解答1.查詢所有學(xué)生的姓名和年齡問(wèn)題:查詢所有學(xué)生的姓名和年齡。解答:```sqlSELECTname,ageFROMstudents;2.查詢所有學(xué)生的姓名、年齡和成績(jī)問(wèn)題:查詢所有學(xué)生的姓名、年齡和成績(jī)。解答:```sqlSELECTname,age,scoreFROMstudents;3.查詢年齡大于20的學(xué)生姓名和年齡問(wèn)題:查詢年齡大于20的學(xué)生姓名和年齡。解答:```sqlSELECTname,ageFROMstudentsWHEREage>20;4.查詢成績(jī)大于90的學(xué)生姓名、年齡和成績(jī)問(wèn)題:查詢成績(jī)大于90的學(xué)生姓名、年齡和成績(jī)。解答:```sqlSELECTname,age,scoreFROMstudentsWHEREscore>90;5.查詢選修了所有課程的學(xué)生姓名問(wèn)題:查詢選修了所有課程的學(xué)生姓名。解答:```sqlSELECTFROMstudentsJOINstudent_coursesONstudents.id=student_courses.student_idGROUPBYstudents.idHAVINGCOUNT(DISTINCTstudent_courses.course_id)=(SELECTCOUNT(*)FROMcourses);6.查詢成績(jī)排名前3的學(xué)生姓名和成績(jī)問(wèn)題:查詢成績(jī)排名前3的學(xué)生姓名和成績(jī)。解答:```sqlSELECTname,scoreFROMstudentsORDERBYscoreDESCLIMIT3;7.查詢每個(gè)學(xué)生的姓名、年齡和選修的課程名稱問(wèn)題:查詢每個(gè)學(xué)生的姓名、年齡和選修的課程名稱。解答:```sqlSELECT,students.age,ascourse_nameFROMstudentsJOINstudent_coursesONstudents.id=student_courses.student_idJOINcoursesONstudent_courses.course_id=courses.id;8.查詢至少有5個(gè)學(xué)生的課程名稱問(wèn)題:查詢至少有5個(gè)學(xué)生的課程名稱。解答:```sqlSELECTascourse_nameFROMcoursesJOINstudent_coursesONcourses.id=student_courses.course_idGROUPBYcourses.idHAVINGCOUNT(student_courses.student_id)>=5;9.查詢年齡最大和最小的一對(duì)學(xué)生姓名和年齡問(wèn)題:查詢年齡最大和最小的一對(duì)學(xué)生姓名和年齡。解答:```sqlSELECTASstudent_name,students.ageASstudent_age,teachers.ageASteacher_ageFROMstudents,teachersWHEREstudents.age=(SELECTMAX(age)FROMstudents)ANDteachers.age=(SELECTMIN(age)FROMteachers);10.查詢每個(gè)學(xué)生的姓名、年齡和對(duì)應(yīng)的班主任姓名問(wèn)題:查詢每個(gè)學(xué)生的姓名、年齡和對(duì)應(yīng)的班主任姓名。解答:```sqlSELECTASs
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保技術(shù)開(kāi)發(fā)合同違約賠償及成果轉(zhuǎn)化
- 二零二五年度林業(yè)用地林地買(mǎi)賣(mài)合同范本(含林權(quán)流轉(zhuǎn))
- 二零二五年度大數(shù)據(jù)產(chǎn)業(yè)股權(quán)質(zhì)押融資合同
- 2025年度綠色建筑項(xiàng)目業(yè)績(jī)回報(bào)提成協(xié)議
- 二零二五年度自愿離婚協(xié)議書(shū)附共同債務(wù)承擔(dān)及信用修復(fù)合同
- 二零二五年度影視制片人藝術(shù)指導(dǎo)合同
- 2025年度車(chē)輛事故車(chē)輛損失賠償協(xié)議
- 2025浙江外服招募公立醫(yī)院國(guó)企人員33人筆試參考題庫(kù)附帶答案詳解
- 2025廣西大藤峽水利樞紐開(kāi)發(fā)有限責(zé)任公司春季招聘8人筆試參考題庫(kù)附帶答案詳解
- 交通管理與控制知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋同濟(jì)大學(xué)
- 【鄉(xiāng)村振興背景下的鄉(xiāng)村治理改革探究:以S村為例8000字(論文)】
- 2024年廣東中考道德與法治試卷答案講解及備考指導(dǎo)(深度課件)
- HG+20231-2014化學(xué)工業(yè)建設(shè)項(xiàng)目試車(chē)規(guī)范
- 施工機(jī)械檢查驗(yàn)收表(挖掘機(jī))
- HG-T 2006-2022 熱固性和熱塑性粉末涂料
- 公用水泵房和雨水泵房設(shè)備調(diào)試方案
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 《打草驚蛇》課件
- 蝦皮shopee新手賣(mài)家考試題庫(kù)及答案
- 五年級(jí)口算1000題(打印版)
- Access數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 教案 全套 項(xiàng)目:1-8
評(píng)論
0/150
提交評(píng)論