版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2025年大數(shù)據(jù)分析師職業(yè)技能測試卷:SQL數(shù)據(jù)庫查詢與優(yōu)化試題集考試時間:______分鐘總分:______分姓名:______一、SQL基礎(chǔ)查詢要求:掌握基本的SQL查詢語句,包括SELECT、FROM、WHERE、GROUPBY、HAVING和ORDERBY等語句的使用。1.從以下表中選擇所有列,但不包括重復(fù)的行:```sqlSELECTDISTINCT*FROMstudents;```2.查詢所有學(xué)生的姓名和年齡,按照年齡降序排列:```sqlSELECTname,ageFROMstudentsORDERBYageDESC;```3.查詢所有性別為女的學(xué)生姓名:```sqlSELECTnameFROMstudentsWHEREgender='female';```4.查詢年齡大于20歲的學(xué)生姓名和年齡:```sqlSELECTname,ageFROMstudentsWHEREage>20;```5.查詢所有學(xué)生的姓名,排除性別為男的學(xué)生:```sqlSELECTnameFROMstudentsWHEREgender<>'male';```6.查詢所有學(xué)生的姓名,年齡在18歲到25歲之間:```sqlSELECTnameFROMstudentsWHEREageBETWEEN18AND25;```7.查詢所有學(xué)生的姓名,年齡不在18歲到25歲之間:```sqlSELECTnameFROMstudentsWHEREageNOTBETWEEN18AND25;```8.查詢所有學(xué)生的姓名,性別為女或者年齡大于20歲:```sqlSELECTnameFROMstudentsWHEREgender='female'ORage>20;```9.查詢所有學(xué)生的姓名,年齡大于20歲并且性別為女:```sqlSELECTnameFROMstudentsWHEREage>20ANDgender='female';```10.查詢所有學(xué)生的姓名,年齡大于20歲或者性別為男:```sqlSELECTnameFROMstudentsWHEREage>20ORgender='male';```二、多表查詢要求:掌握使用JOIN、INNERJOIN、LEFTJOIN、RIGHTJOIN和FULLJOIN進行多表查詢。1.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱:```sqlSELECT,courses.course_nameFROMstudentsINNERJOINcoursesONstudents.course_id=courses.id;```2.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,即使學(xué)生沒有選課也要顯示:```sqlSELECT,courses.course_nameFROMstudentsLEFTJOINcoursesONstudents.course_id=courses.id;```3.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,即使課程沒有學(xué)生也要顯示:```sqlSELECT,courses.course_nameFROMstudentsRIGHTJOINcoursesONstudents.course_id=courses.id;```4.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,只顯示學(xué)生有選課的情況:```sqlSELECT,courses.course_nameFROMstudentsINNERJOINcoursesONstudents.course_id=courses.id;```5.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,只顯示課程有學(xué)生的情況:```sqlSELECT,courses.course_nameFROMstudentsLEFTJOINcoursesONstudents.course_id=courses.id;```6.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,只顯示課程沒有學(xué)生的情況:```sqlSELECT,courses.course_nameFROMstudentsRIGHTJOINcoursesONstudents.course_id=courses.id;```7.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,只顯示學(xué)生有選課并且課程沒有學(xué)生的情況:```sqlSELECT,courses.course_nameFROMstudentsLEFTJOINcoursesONstudents.course_id=courses.idWHEREcourses.idISNULL;```8.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,只顯示課程有學(xué)生并且學(xué)生沒有選課的情況:```sqlSELECT,courses.course_nameFROMstudentsRIGHTJOINcoursesONstudents.course_id=courses.idWHEREstudents.course_idISNULL;```9.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,只顯示學(xué)生有選課并且課程有學(xué)生的情況:```sqlSELECT,courses.course_nameFROMstudentsINNERJOINcoursesONstudents.course_id=courses.idWHEREstudents.course_idISNOTNULLANDcourses.idISNOTNULL;```10.查詢所有學(xué)生的姓名和對應(yīng)的課程名稱,只顯示課程有學(xué)生并且學(xué)生有選課的情況:```sqlSELECT,courses.course_nameFROMstudentsLEFTJOINcoursesONstudents.course_id=courses.idWHEREstudents.course_idISNOTNULLANDcourses.idISNOTNULL;```四、SQL子查詢要求:理解并掌握子查詢的使用,包括嵌套查詢和子查詢在WHERE和SELECT子句中的應(yīng)用。1.查詢所有年齡大于平均年齡的學(xué)生姓名和年齡:```sqlSELECTname,ageFROMstudentsWHEREage>(SELECTAVG(age)FROMstudents);```2.查詢所有學(xué)生的姓名,這些學(xué)生的年齡等于任意一個已經(jīng)選過課程的學(xué)生的年齡:```sqlSELECTnameFROMstudentsWHEREageIN(SELECTageFROMstudentsWHEREcourse_idISNOTNULL);```3.查詢所有學(xué)生的姓名,這些學(xué)生的年齡不等于任何一個已經(jīng)選過課程的學(xué)生的年齡:```sqlSELECTnameFROMstudentsWHEREageNOTIN(SELECTageFROMstudentsWHEREcourse_idISNOTNULL);```4.查詢所有學(xué)生的姓名和他們的課程名稱,對于每個學(xué)生,如果他們的年齡大于某個特定年齡的平均值,則顯示該學(xué)生的課程名稱:```sqlSELECT,courses.course_nameFROMstudentsJOINcoursesONstudents.course_id=courses.idWHEREstudents.age>(SELECTAVG(age)FROMstudentsWHEREcourse_id=students.course_id);```5.查詢所有性別為男的學(xué)生姓名,這些學(xué)生的年齡小于所有性別為女的學(xué)生年齡的平均值:```sqlSELECTnameFROMstudentsWHEREgender='male'ANDage<(SELECTAVG(age)FROMstudentsWHEREgender='female');```六、SQL聚合函數(shù)與分組查詢要求:掌握SQL中的聚合函數(shù)(如COUNT、SUM、AVG、MAX、MIN)以及如何使用GROUPBY和HAVING子句。1.計算每個性別中學(xué)生的數(shù)量:```sqlSELECTgender,COUNT(*)asstudent_countFROMstudentsGROUPBYgender;```2.計算每個年級中學(xué)生的平均年齡:```sqlSELECTgrade,AVG(age)asaverage_ageFROMstudentsGROUPBYgrade;```3.計算每個課程的學(xué)生人數(shù)總和:```sqlSELECTcourses.id,courses.course_name,COUNT(students.id)astotal_studentsFROMcoursesLEFTJOINstudentsONcourses.id=students.course_idGROUPBYcourses.id;```4.查詢所有年齡大于20歲的學(xué)生中,年齡最大的學(xué)生的年齡:```sqlSELECTMAX(age)asmax_age_over_20FROMstudentsWHEREage>20;```5.查詢所有年級中,年級為"Year12"的學(xué)生平均年齡,但只顯示那些平均年齡大于全校平均年齡的年級:```sqlSELECTgrade,AVG(age)asaverage_ageFROMstudentsWHEREgrade='Year12'GROUPBYgradeHAVINGAVG(age)>(SELECTAVG(age)FROMstudents);```本次試卷答案如下:一、SQL基礎(chǔ)查詢1.答案:`SELECTDISTINCT*FROMstudents;`解析思路:使用`DISTINCT`關(guān)鍵字來確保查詢結(jié)果中不包含重復(fù)的行。2.答案:`SELECTname,ageFROMstudentsORDERBYageDESC;`解析思路:選擇學(xué)生的姓名和年齡,然后使用`ORDERBY`語句按年齡降序排列。3.答案:`SELECTnameFROMstudentsWHEREgender='female';`解析思路:通過`WHERE`子句篩選性別為'female'的學(xué)生。4.答案:`SELECTname,ageFROMstudentsWHEREage>20;`解析思路:通過`WHERE`子句篩選年齡大于20歲的學(xué)生。5.答案:`SELECTnameFROMstudentsWHEREgender<>'male';`解析思路:使用`<>`運算符來排除性別為'male'的學(xué)生。6.答案:`SELECTnameFROMstudentsWHEREageBETWEEN18AND25;`解析思路:使用`BETWEEN`運算符來篩選年齡在18到25歲之間的學(xué)生。7.答案:`SELECTnameFROMstudentsWHEREageNOTBETWEEN18AND25;`解析思路:使用`NOTBETWEEN`運算符來排除年齡在18到25歲之間的學(xué)生。8.答案:`SELECTnameFROMstudentsWHEREgender='female'ORage>20;`解析思路:使用`OR`運算符來同時篩選性別為'female'或年齡大于20歲的學(xué)生。9.答案:`SELECTnameFROMstudentsWHEREage>20ANDgender='female';`解析思路:使用`AND`運算符來篩選年齡大于20歲且性別為'female'的學(xué)生。10.答案:`SELECTnameFROMstudentsWHEREage>20ORgender='male';`解析思路:使用`OR`運算符來同時篩選年齡大于20歲或性別為'male'的學(xué)生。二、多表查詢1.答案:`SELECT,courses.course_nameFROMstudentsINNERJOINcoursesONstudents.course_id=courses.id;`解析思路:使用`INNERJOIN`來連接`students`和`courses`表,基于`course_id`字段。2.答案:`SELECT,courses.course_nameFROMstudentsLEFTJOINcoursesONstudents.course_id=courses.id;`解析思路:使用`LEFTJOIN`來連接`students`和`courses`表,即使`students`表中沒有對應(yīng)`courses`表的記錄也會顯示。3.答案:`SELECT,courses.course_nameFROMstudentsRIGHTJOINcoursesONstudents.course_id=courses.id;`解析思路:使用`RIGHTJOIN`來連接`students`和`courses`表,即使`courses`表中沒有對應(yīng)`students`表的記錄也會顯示。4.答案:`SELECT,courses.course_nameFROMstudentsINNERJOINcoursesONstudents.course_id=courses.id;`解析思路:使用`INNERJOIN`來連接`students`和`courses`表,只顯示兩個表中有匹配的記錄。5.答案:`SELECT,courses.course_nameFROMstudentsLEFTJOINcoursesONstudents.course_id=courses.id;`解析思路:使用`LEFTJOIN`來連接`students`和`courses`表,即使`students`表中沒有對應(yīng)`courses`表的記錄也會顯示。6.答案:`SELECT,courses.course_nameFROMstudentsRIGHTJOINcoursesONstudents.course_id=courses.id;`解析思路:使用`RIGHTJOIN`來連接`students`和`courses`表,即使`courses`表中沒有對應(yīng)`students`表的記錄也會顯示。7.答案:`SELECT,courses.course_nameFROMstudentsLEFTJOINcoursesONstudents.course_id=c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超聲初級考試題庫及答案
- 2026重慶法治考試題庫及答案
- 大數(shù)據(jù)預(yù)測噪聲性睡眠干預(yù)需求的應(yīng)用
- 大數(shù)據(jù)在精準(zhǔn)醫(yī)療中的整合策略
- 烹飪考試題及答案
- 多組學(xué)整合的代謝網(wǎng)絡(luò)分析平臺
- 2025年中職休閑農(nóng)業(yè)生產(chǎn)與經(jīng)營(休閑農(nóng)業(yè)機械操作)試題及答案
- 2026年教育技術(shù)(技術(shù)應(yīng)用)試題及答案
- 2025年大學(xué)物聯(lián)網(wǎng)工程(物聯(lián)網(wǎng)理論)試題及答案
- 2025年高職(數(shù)控技術(shù))編程優(yōu)化階段測試題及答案
- 新一代能源管理系統(tǒng)建設(shè)方案
- 小型手持式采茶機
- 人工智能與終身學(xué)習(xí)體系構(gòu)建研究報告
- 2025杭州市市級機關(guān)事業(yè)單位編外招聘考試備考試題及答案解析
- 化學(xué)反應(yīng)原理大題集訓(xùn)(含解析)-2026屆高中化學(xué)一輪復(fù)習(xí)講義
- 團隊成員介紹課件
- 醫(yī)院敏感數(shù)據(jù)安全管理規(guī)范
- 政協(xié)機車輛管理辦法
- 渝22TS02 市政排水管道附屬設(shè)施標(biāo)準(zhǔn)圖集 DJBT50-159
- 母嬰護理員職業(yè)道德課件
- 電力工程應(yīng)急管理措施
評論
0/150
提交評論