關(guān)系數(shù)據(jù)庫語言SQL習(xí)題與答案_第1頁
關(guān)系數(shù)據(jù)庫語言SQL習(xí)題與答案_第2頁
關(guān)系數(shù)據(jù)庫語言SQL習(xí)題與答案_第3頁
關(guān)系數(shù)據(jù)庫語言SQL習(xí)題與答案_第4頁
關(guān)系數(shù)據(jù)庫語言SQL習(xí)題與答案_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.關(guān)系數(shù)據(jù)庫語言SQL習(xí)題與答案一,選擇題1,下面關(guān)于SQL語言的敘述中,哪一條是錯誤的( ).A.SQL既可作為聯(lián)機交互環(huán)境中的查詢語言又可嵌入到主語言中B.SQL沒有數(shù)據(jù)控制功能C.使用SQL用戶只能定義索引而不能引用索引D.使用SQL用戶可以定義和檢索視圖2,SQL語言是( )A.高級語言 B.編程語言C.結(jié)構(gòu)化查詢語言 D.宿主語言3,在學(xué)生數(shù)據(jù)庫中,用SQL語句列出的所有女生的姓名,應(yīng)該對學(xué)生關(guān)系進(jìn)行( )操作.A.選擇 B.連接 C.投影 D.選擇和投影4,NULL是指( )A.0 B.空格 C.無任何值 D.空字符串5,下列哪條語句不屬于SQL數(shù)據(jù)操縱功能范圍( )A.SELEC

2、T B. CREAT TABLE C.DELETE D.INSERT6,用( )命令可建立唯一索引A.CREATE TABLE B.CREATE CLUSTERC.CREATE INDEX D.CREATE UNIQUE INDEX二,填空題1,SQL語言的使用方式有兩種,一種是 ,另一種是2,在SQL查詢中,WHERE子句的功能是 .3,視圖是一個虛表,它是從 的表.4,SQL語言的數(shù)據(jù)操縱功能包括 , , ,和 ,5,在SQL支持的關(guān)系數(shù)據(jù)庫三級模式結(jié)構(gòu)中,外模式對應(yīng)于 ,模式對應(yīng)于 ,內(nèi)模式對應(yīng)于 .6,在SELECT語句中,HAVING子句必須跟在 子句后面.三,問題及操作題1,名詞解

3、釋SQL模式 SQL數(shù)據(jù)庫 基本表 視圖 相關(guān)子查詢 聯(lián)接查詢嵌入式SQL 游標(biāo)2,對于教學(xué)數(shù)據(jù)庫的三個基本表學(xué)生 S(S#,SNAME,AGE,SEX)學(xué)習(xí) SC(S#,C#,GRADE)課程 C(C#,CNAME,TEACHER)試用SQL的查詢語句表達(dá)下列查詢:(1)檢索LIU老師所授課程的課程號和課程名.(2)檢索年齡大于23歲的男學(xué)生的學(xué)號和姓名.(3)檢索至少選修LIU老師所授課程中一門課程的女學(xué)生姓名.( 4) 檢索WANG同學(xué)不學(xué)的課程的課程號.(5)檢索至少選修兩門課程的學(xué)生學(xué)號.(6)檢索全部學(xué)生都選修的課程的課程號與課程名.(7)檢索選修課程包含LIU老師所授課的學(xué)生學(xué)號

4、.3, 設(shè)有兩個基本表R(A,B,C)和S(A,B,C)試用SQL查詢語句表達(dá)下列關(guān)系代數(shù)表達(dá)式:(1)RS (2)RS (3)R-S (4)A,B(R)B,C(S)4, 試用SQL查詢語句表達(dá)下列對教學(xué)數(shù)據(jù)庫中三個基本表S,SC,C的查詢:(1)統(tǒng)計有學(xué)生選修的課程門數(shù).(2)求選修C4課程的學(xué)生的平均年齡.(3)求LIU老師所授課程的每門課程的學(xué)生平均成績.(4)統(tǒng)計每門課程的學(xué)生選修人數(shù)(超過10人的課程才統(tǒng)計).要求輸出課程號和選修人數(shù), 查 詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號升序排列.(5)檢索學(xué)號比WANG同學(xué)大,而年齡比他小的學(xué)生姓名.(6)檢索姓名以WANG打頭的所有學(xué)

5、生的姓名和年齡.(7)在SC中檢索成績?yōu)榭罩档膶W(xué)生學(xué)號和課程號.(8)求年齡大于女同學(xué)平均年齡的男學(xué)生姓名和年齡.5, 試用SQL更新語句表達(dá)對教學(xué)數(shù)據(jù)庫中三個基本表S,SC,C的各個更新操作:(1)往基本表S中插入一個學(xué)生元組('S9','WU',18).(2)在基本表S中檢索每一門課程成績都大于等于80分的學(xué)生學(xué)號,姓名和性別, 并把檢索到的值送往另一個已存在的基本表STUDENT(S#,SANME,SEX).(3)在基本表SC中刪除尚無成績的選課元組.(4)把WANG同學(xué)的學(xué)習(xí)選課和成績?nèi)縿h去(5)把選修MATHS課不及格的成績?nèi)臑榭罩?(6)把低于總

6、平均成績的女同學(xué)成績提高5%.(7)在基本表SC中修改C4課程的成績,若成績小于等于75分時提高5%, 若成績大于75分時提高4%(用兩個UPDATE語句實現(xiàn)).6, 在宿主語言的程序中使用SQL語句有哪些規(guī)定7,嵌入式SQL語句何時不必涉及到游標(biāo) 何時必須涉及到游標(biāo)答案:一,1,B 2,C 3,D 4,C 5,B 6,D二,1,嵌入式 交互式 2,選擇3,基本表導(dǎo)出的表 4,數(shù)據(jù)查詢 數(shù)據(jù)更新 數(shù)據(jù)插入 數(shù)據(jù)刪除5,視圖或部分基本表 基本表 存儲文件6,GROUP BY三,1,名詞解釋SQL模式:SQL模式是表和授權(quán)的靜態(tài)定義.一個SQL模式定義為基本表的集合. 一個由模式名和模式擁有者的用

7、戶名或賬號來確定,并包含模式中每一個元素(基本表,視圖,索引等)的定義.SQL數(shù)據(jù)庫:SQL(Structured Query Language),即'結(jié)構(gòu)式查詢語言',采用英語單詞表示和結(jié)構(gòu)式的語法規(guī)則. 一個SQL數(shù)據(jù)庫是表的匯集,它用一個或多個SQL模式定義.基本表:在SQL中,把傳統(tǒng)的關(guān)系模型中的關(guān)系模式稱為基本表(Base Table). 基本表是實際存儲在數(shù)據(jù)庫中的表,對應(yīng)一個關(guān)系.視圖:在SQL中,把傳統(tǒng)的關(guān)系模型中的子模式稱為視圖(View),視圖是從若干基本表和(或)其他視圖構(gòu)造出來的表.相關(guān)子查詢:在嵌套查詢中出現(xiàn)的符合以下特征的子查詢:子查詢中查詢條件依賴

8、于外層查詢中的某個值, 所以子查詢的處理不只一次,要反復(fù)求值,以供外層查詢使用.聯(lián)接查詢:查詢時先對表進(jìn)行笛卡爾積操作,然后再做等值聯(lián)接,選擇,投影等操作. 聯(lián)接查詢的效率比嵌套查詢低.嵌入式SQL:嵌入在高級語言的程序中使用的SQL語言稱為嵌入式SQL.游標(biāo):游標(biāo)是與某一查詢結(jié)果相聯(lián)系的符號名,用于把集合操作轉(zhuǎn)換成單記錄處理方式.2,(1)檢索LIU老師所授課程的課程號和課程名.SELECT C#,CNAMEFROM CWHERE TEACHER='LIU'(2)檢索年齡大于23歲的男學(xué)生的學(xué)號和姓名.SELECT S#,SNAMEFROM SWHERE (AGE>23

9、) AND (SEX='M')(3)檢索至少選修LIU老師所授課程中一門課程的女學(xué)生姓名.SELECT SNAMEFROM SWHERE SEX='F' AND S# IN(SELECT S#FROM SCWHERE C# IN(SELECT C#FROM CWHERE TEACHER='LIU')NOTICE:有多種寫法,比如聯(lián)接查詢寫法:SELECT SNAMEFROM S,SC,CWHERE SEX='F' AND SC.S#=S.S#AND SC.C#=C.C#AND TEACHER='LIU'但上一種寫法

10、更好一些.(4)檢索WANG同學(xué)不學(xué)的課程的課程號.SELECT C#FROM CWHERE C# NOT IN(SELECT C#FROM SCWHERE S# IN(SELECT S#FROM SWHERE SNAME='WANG')(5)檢索至少選修兩門課程的學(xué)生學(xué)號.SELECT DISTINCT X.SNOFROM SC X,SC YWHERE X.SNO=Y.SNO AND X.CNOY.CNONotice:對表SC進(jìn)行自連接,X,Y是SC的兩個別名.(6)檢索全部學(xué)生都選修的課程的課程號與課程名.SELECT C#,CNAMEFROM CWHERE NOT EXI

11、STS(SELECT *FROM SWHERE S# NOT IN(SELECT *FROM SCWHERE SC.C#=C.C#)要從語義上分解:(1)選擇課程的課程號與課程名,不存在不選這門課的同學(xué).其中,"不選這門課的同學(xué)"可以表示為:SELECT *FROM SWHERE S# NOT IN(SELECT *FROM SCWHERE SC.C#=C.C#)或者SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE S.S#=C.S# ANDSC.C#=C.C# )(7)檢索選修課程包含LIU老師所授課的學(xué)生學(xué)號.SEL

12、ECT DISTINCT S#FROM SCWHERE C# IN(SELECT C#FROM CWHERE TEACHER='LIU')3,(1)SELECT A,B,CFROM RUNIONSELECT A,B,CFROM S(2)SELECT A,B,CFROM RINTERSECTSELECT A,B,CFROM S(3)SELECT A,B,CFROM RWHERE NOT EXISTS(SELECT A,B,CFROM SWHERE R.A=S.A AND R.B=S.B AND R.C=S.C)(4)SELECT R.A,R.B,S.CFROM R,SWHERE

13、R.B=S.B4, (1)統(tǒng)計有學(xué)生選修的課程門數(shù).SELECT COUNT(DISTINCT C#) FROM SC(2)求選修C4課程的學(xué)生的平均年齡.SELECT AVG(AGE)FROM SWHERE S# IN(SELECT S#FROM SCWHERE C#='C4')或者,SELECT AVG(AGE)FROM S,SCWHERE S.S#=SC.S# AND C#='004'(3)求LIU老師所授課程的每門課程的學(xué)生平均成績.SELECT CNAME,AVG(GRADE)FROM SC ,CWHERE SC.C#=C.C# AND TEACHER

14、='LIU'GROUP BY C#(4)統(tǒng)計每門課程的學(xué)生選修人數(shù)(超過10人的課程才統(tǒng)計).要求輸出課程號和選修人數(shù), 查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號升序排列.SELECT DISTINCT C#,COUNT(S#)FROM SCGROUP BY C#HAVING COUNT(S#)>10ORDER BY 2 DESC, C# ASC(5)檢索學(xué)號比WANG同學(xué)大,而年齡比他小的學(xué)生姓名.SELECT X.SNAMEFROM S AS X, S AS YWHERE Y.SNAME='WANG' AND X.S#>Y.S# AND X.

15、AGE(SELECT AVG(AGE) FROM S AS Y WHERE Y.SEX='女')5, (1)往基本表S中插入一個學(xué)生元組('S9','WU',18).INSERT INTO S(S#,SNAME,AGE) VALUES('59','WU',18)(2)在基本表S中檢索每一門課程成績都大于等于80分的學(xué)生學(xué)號,姓名和性別, 并把檢索到的值送往另一個已存在的基本表STUDENT(S#,SANME,SEX).INSERT INTO STUDENT(S#,SNAME,SEX)SELECT S#,SNAME,

16、SEXFROM S WHERE NOT EXISTS(SELECT * FROM SC WHEREGRADE<80 AND S.S#=SC.S#)(3)在基本表SC中刪除尚無成績的選課元組.DELETE FROM SCWHERE GRADE IS NULL(4)把WANG同學(xué)的學(xué)習(xí)選課和成績?nèi)縿h去.DELETE FROM SCWHERE S# IN(SELECT S#FROM SWHERE SNAME='WANG')(5)把選修MATHS課不及格的成績?nèi)臑榭罩?UPDATE SCSET GRADE=NULLWHERE GRADE<60 AND C# IN(SEL

17、ECT C#FROM CWHERE CNAME='MATHS')6)把低于總平均成績的女同學(xué)成績提高5%.UPDATE SCSET GRADE=GRADE*1.05WHERE GRADE<(SELECT AVG(GRADE) FROM SC) AND S# IN (SELECT S# FROM S WHERE SEX='F')(7)在基本表SC中修改C4課程的成績,若成績小于等于75分時提高5%, 若成績大于75分時提高4%(用兩個UPDATE語句實現(xiàn)).UPDATE SCSET GRADE=GRADE*1.05WHERE C#='C4' AND GRADE756, 在宿主語言的程序中使用SLQ語句有以下規(guī)定:(1)在程序中要區(qū)分SQL語句與宿主語言語句(2)允許嵌入的SQL語句引用宿主語言的程序變量(稱為共享變量),但有兩條規(guī)定:1)引用時

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論