2025年數(shù)據(jù)庫(kù)SQL期末考試題及答案_第1頁(yè)
2025年數(shù)據(jù)庫(kù)SQL期末考試題及答案_第2頁(yè)
2025年數(shù)據(jù)庫(kù)SQL期末考試題及答案_第3頁(yè)
2025年數(shù)據(jù)庫(kù)SQL期末考試題及答案_第4頁(yè)
2025年數(shù)據(jù)庫(kù)SQL期末考試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2025年數(shù)據(jù)庫(kù)SQL期末考試題及答案一、單項(xiàng)選擇題(每題2分,共20分)1.以下關(guān)于主鍵(PRIMARYKEY)約束的描述中,錯(cuò)誤的是()A.主鍵列值必須唯一且非空B.一個(gè)表中最多只能有一個(gè)主鍵C.主鍵可以由多個(gè)列共同組成D.主鍵約束會(huì)自動(dòng)創(chuàng)建唯一索引,但不會(huì)創(chuàng)建聚集索引2.在SQL中,若要將兩張表按“學(xué)生ID”字段進(jìn)行左連接(LEFTJOIN),且僅保留“學(xué)生表”中存在但“成績(jī)表”中無(wú)對(duì)應(yīng)記錄的學(xué)生,應(yīng)使用的過(guò)濾條件是()A.WHERE成績(jī)表.學(xué)生IDISNULLB.ON成績(jī)表.學(xué)生IDISNULLC.HAVING成績(jī)表.學(xué)生IDISNULLD.AND成績(jī)表.學(xué)生ID=學(xué)生表.學(xué)生ID3.事務(wù)的“持久性”(Durability)是指()A.事務(wù)一旦提交,其對(duì)數(shù)據(jù)庫(kù)的修改將永久保存B.事務(wù)執(zhí)行過(guò)程中,其他事務(wù)不可干擾C.事務(wù)中的操作要么全部完成,要么全部不完成D.事務(wù)處理的數(shù)據(jù)必須滿足數(shù)據(jù)庫(kù)的完整性約束4.以下關(guān)于窗口函數(shù)(WindowFunction)的描述中,正確的是()A.窗口函數(shù)必須與GROUPBY子句配合使用B.ROW_NUMBER()函數(shù)會(huì)為相同值的行分配相同的序號(hào)C.窗口函數(shù)的OVER子句可以定義排序和分區(qū)規(guī)則D.窗口函數(shù)只能在SELECT語(yǔ)句中使用,不能在WHERE子句中使用5.若要查詢“訂單表”中每個(gè)客戶最近一次下單的時(shí)間(按客戶分組),最優(yōu)的SQL語(yǔ)句是()A.SELECT客戶ID,MAX(下單時(shí)間)AS最近下單時(shí)間FROM訂單表GROUPBY客戶IDB.SELECT客戶ID,下單時(shí)間AS最近下單時(shí)間FROM訂單表GROUPBY客戶IDHAVING下單時(shí)間=MAX(下單時(shí)間)C.SELECT客戶ID,下單時(shí)間AS最近下單時(shí)間FROM訂單表WHERE下單時(shí)間IN(SELECTMAX(下單時(shí)間)FROM訂單表GROUPBY客戶ID)D.SELECT客戶ID,FIRST_VALUE(下單時(shí)間)OVER(PARTITIONBY客戶IDORDERBY下單時(shí)間DESC)AS最近下單時(shí)間FROM訂單表6.以下關(guān)于索引的說(shuō)法中,錯(cuò)誤的是()A.聚集索引會(huì)改變表中數(shù)據(jù)的物理存儲(chǔ)順序B.非聚集索引的葉節(jié)點(diǎn)存儲(chǔ)的是數(shù)據(jù)行的指針或聚集索引鍵C.為經(jīng)常用于查詢條件的列創(chuàng)建索引可以提高查詢效率D.索引越多,數(shù)據(jù)庫(kù)的寫操作(INSERT/UPDATE/DELETE)性能越好7.在MySQL中,若要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)根據(jù)學(xué)生ID查詢其平均分并輸出,正確的語(yǔ)法是()A.CREATEPROCEDUREGetAvgScore(INs_idINT,OUTavg_scoreDECIMAL(5,2))BEGINSELECTAVG(成績(jī))INTOavg_scoreFROM選課表WHERE學(xué)生ID=s_id;ENDB.CREATEFUNCTIONGetAvgScore(s_idINT)RETURNSDECIMAL(5,2)BEGINRETURN(SELECTAVG(成績(jī))FROM選課表WHERE學(xué)生ID=s_id);ENDC.CREATEPROCEDUREGetAvgScore(s_idINT)BEGINSELECTAVG(成績(jī))AS平均分FROM選課表WHERE學(xué)生ID=s_id;ENDD.CREATETRIGGERGetAvgScoreAFTERINSERTON選課表FOREACHROWBEGINSELECTAVG(成績(jī))INTO@avg_scoreFROM選課表WHERE學(xué)生ID=NEW.學(xué)生ID;END8.若“員工表”包含字段(員工ID,姓名,部門ID,入職時(shí)間),“部門表”包含字段(部門ID,部門名稱),要查詢所有部門的名稱及對(duì)應(yīng)員工的平均入職年限(假設(shè)當(dāng)前時(shí)間為2025年),正確的SQL語(yǔ)句是()A.SELECT部門名稱,AVG(YEAR(NOW())YEAR(入職時(shí)間))AS平均入職年限FROM員工表,部門表WHERE員工表.部門ID=部門表.部門IDGROUPBY部門名稱B.SELECT部門名稱,AVG(DATEDIFF(CURDATE(),入職時(shí)間)/365)AS平均入職年限FROM部門表LEFTJOIN員工表ON部門表.部門ID=員工表.部門IDGROUPBY部門名稱C.SELECT部門名稱,AVG(YEAR(CURRENT_DATE)YEAR(入職時(shí)間))AS平均入職年限FROM員工表INNERJOIN部門表ON員工表.部門ID=部門表.部門IDGROUPBY部門IDD.SELECT部門名稱,AVG(TIMESTAMPDIFF(YEAR,入職時(shí)間,CURDATE()))AS平均入職年限FROM部門表LEFTJOIN員工表ON部門表.部門ID=員工表.部門IDGROUPBY部門名稱9.以下關(guān)于視圖(VIEW)的描述中,正確的是()A.視圖可以直接修改基表的數(shù)據(jù),只要滿足可更新視圖的條件B.視圖的定義中不能包含ORDERBY子句C.視圖會(huì)存儲(chǔ)實(shí)際的數(shù)據(jù),因此可以提高查詢效率D.視圖只能基于單張基表創(chuàng)建10.在事務(wù)隔離級(jí)別中,“可重復(fù)讀”(REPEATABLEREAD)可以解決的問(wèn)題是()A.臟讀(DirtyRead)B.幻讀(PhantomRead)C.不可重復(fù)讀(Non-repeatableRead)D.以上都是二、填空題(每空2分,共20分)1.在SQL中,用于修改表結(jié)構(gòu)的語(yǔ)句是__________。2.若要限制“年齡”字段的值在18到60之間,應(yīng)使用的約束是__________。3.窗口函數(shù)中,用于計(jì)算當(dāng)前行及其前后行匯總值的子句是__________。4.事務(wù)的四個(gè)特性(ACID)是原子性、一致性、__________和持久性。5.在MySQL中,存儲(chǔ)引擎__________支持事務(wù),而__________不支持事務(wù)。6.若要查詢“學(xué)生表”中姓名以“張”開頭且長(zhǎng)度為2的學(xué)生,WHERE子句應(yīng)寫為__________。7.觸發(fā)器(TRIGGER)的觸發(fā)時(shí)機(jī)包括__________和AFTER兩種。8.索引的類型包括聚集索引、非聚集索引、唯一索引和__________。三、簡(jiǎn)答題(每題6分,共30分)1.簡(jiǎn)述索引的優(yōu)缺點(diǎn)。2.說(shuō)明UNION和UNIONALL的區(qū)別,并舉例說(shuō)明適用場(chǎng)景。3.什么是事務(wù)的隔離級(jí)別?常見的隔離級(jí)別有哪些(按從低到高排序)?4.視圖和表的主要區(qū)別是什么?何時(shí)適合使用視圖?5.簡(jiǎn)述查詢優(yōu)化的常見方法(至少列舉4種)。四、綜合應(yīng)用題(共30分)假設(shè)某高校數(shù)據(jù)庫(kù)包含以下表結(jié)構(gòu)(所有字段均非空):學(xué)生表(Student):Sno(學(xué)生學(xué)號(hào),CHAR(8),主鍵),Sname(姓名,VARCHAR(20)),Sage(年齡,INT),Sdept(所在學(xué)院,VARCHAR(30))課程表(Course):Cno(課程編號(hào),CHAR(4),主鍵),Cname(課程名稱,VARCHAR(50)),Credit(學(xué)分,TINYINT),Tno(教師編號(hào),CHAR(6))選課表(SC):Sno(學(xué)生學(xué)號(hào),CHAR(8)),Cno(課程編號(hào),CHAR(4)),Score(成績(jī),DECIMAL(5,2)),主鍵(Sno,Cno),外鍵(Sno)REFERENCESStudent(Sno),外鍵(Cno)REFERENCESCourse(Cno)教師表(Teacher):Tno(教師編號(hào),CHAR(6),主鍵),Tname(教師姓名,VARCHAR(20)),Ttitle(職稱,VARCHAR(10)),Tdept(所屬學(xué)院,VARCHAR(30))請(qǐng)根據(jù)以上表結(jié)構(gòu),完成以下SQL語(yǔ)句編寫:1.(6分)查詢“計(jì)算機(jī)學(xué)院”(Sdept='計(jì)算機(jī)學(xué)院')所有學(xué)生的學(xué)號(hào)、姓名,以及他們已選課程的平均成績(jī)(保留2位小數(shù))。要求未選課的學(xué)生也需顯示,平均成績(jī)記為0。2.(8分)查詢“高等數(shù)學(xué)”(Cname='高等數(shù)學(xué)')課程中,成績(jī)高于該課程平均分的學(xué)生姓名、成績(jī),并按成績(jī)降序排序。3.(8分)創(chuàng)建一個(gè)視圖(v_teacher_course),顯示教師姓名、職稱、所授課程名稱及課程學(xué)分。要求視圖僅包含“教授”(Ttitle='教授')職稱的教師。4.(8分)編寫一個(gè)存儲(chǔ)過(guò)程(proc_update_score),實(shí)現(xiàn)根據(jù)學(xué)生學(xué)號(hào)、課程編號(hào)和新成績(jī)更新選課表中的成績(jī)。要求:若新成績(jī)小于0或大于100,則拋出錯(cuò)誤提示“成績(jī)必須在0-100之間”;若更新成功,輸出“成績(jī)更新成功”。答案--一、單項(xiàng)選擇題1.D2.A3.A4.C5.A6.D7.A8.D9.A10.C二、填空題1.ALTERTABLE2.CHECK(年齡BETWEEN18AND60)3.ROWSBETWEENUNBOUNDEDPRECEDINGANDUNBOUNDEDFOLLOWING(或其他范圍定義,合理即可)4.隔離性5.InnoDB;MyISAM6.WHERESnameLIKE'張_'7.BEFORE8.全文索引(或哈希索引等,合理即可)三、簡(jiǎn)答題1.優(yōu)點(diǎn):加速數(shù)據(jù)查詢,減少全表掃描;提高連接操作效率;支持唯一性約束(唯一索引)。缺點(diǎn):增加存儲(chǔ)開銷;影響寫操作(INSERT/UPDATE/DELETE)性能;需要維護(hù)索引一致性;過(guò)多索引可能降低查詢優(yōu)化器效率。2.UNION會(huì)自動(dòng)去重并對(duì)結(jié)果排序,UNIONALL直接合并結(jié)果(包含重復(fù)行)且不排序。適用場(chǎng)景:當(dāng)需要合并兩個(gè)結(jié)果集且確保無(wú)重復(fù)數(shù)據(jù)時(shí)用UNIONALL(性能更高);當(dāng)需要去重時(shí)用UNION(如合并不同來(lái)源的用戶數(shù)據(jù))。3.事務(wù)隔離級(jí)別定義了事務(wù)之間的可見性和干擾程度。常見隔離級(jí)別(從低到高):讀未提交(READUNCOMMITTED)、讀已提交(READCOMMITTED)、可重復(fù)讀(REPEATABLEREAD)、串行化(SERIALIZABLE)。4.區(qū)別:視圖是虛擬表(不存儲(chǔ)數(shù)據(jù)),表是實(shí)際存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu);視圖依賴基表,基表結(jié)構(gòu)改變可能導(dǎo)致視圖不可用;視圖可限制數(shù)據(jù)訪問(wèn)權(quán)限。適用場(chǎng)景:簡(jiǎn)化復(fù)雜查詢、限制敏感數(shù)據(jù)訪問(wèn)、提供數(shù)據(jù)的邏輯視圖(如按部門匯總數(shù)據(jù))。5.常見方法:合理使用索引(為高頻查詢字段建索引);避免在WHERE子句使用函數(shù)或表達(dá)式;優(yōu)化JOIN順序(小表驅(qū)動(dòng)大表);使用EXPLAIN分析查詢執(zhí)行計(jì)劃;減少SELECT(只查詢需要的字段);合理分表或分區(qū);避免嵌套過(guò)深的子查詢(改用JOIN)。四、綜合應(yīng)用題1.SELECTs.Sno,s.Sname,COALESCE(AVG(sc.Score),0)AS平均成績(jī)FROMStudentsLEFTJOINSCscONs.Sno=sc.SnoWHEREs.Sdept='計(jì)算機(jī)學(xué)院'GROUPBYs.Sno,s.Sname;2.WITHavg_scoreAS(SELECTAVG(Score)AS課程平均分FROMSCscINNERJOINCoursecONsc.Cno=c.CnoWHEREc.Cname='高等數(shù)學(xué)')SELECTs.Sname,sc.ScoreFROMSCscINNERJOINCoursecONsc.Cno=c.CnoINNERJOINStudentsONsc.Sno=s.SnoCROSSJOINavg_scoreaWHEREc.Cname='高等數(shù)學(xué)'ANDsc.Score>a.課程平均分ORDERBYsc.ScoreDESC;3.CREATEVIEWv_teacher_courseASSELECTt.Tname,t.Ttitle,c.Cname,c.CreditFROMTeachertIN

溫馨提示

  • 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論