數(shù)據(jù)庫(kù)習(xí)題作業(yè)(共12頁(yè))_第1頁(yè)
數(shù)據(jù)庫(kù)習(xí)題作業(yè)(共12頁(yè))_第2頁(yè)
數(shù)據(jù)庫(kù)習(xí)題作業(yè)(共12頁(yè))_第3頁(yè)
數(shù)據(jù)庫(kù)習(xí)題作業(yè)(共12頁(yè))_第4頁(yè)
數(shù)據(jù)庫(kù)習(xí)題作業(yè)(共12頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)據(jù)庫(kù)習(xí)題作業(yè)重點(diǎn)(第2-3-4章)2.6 設(shè)有關(guān)系R和S:RABCSABC3673 4 5257723723443計(jì)算RS,R-S,RS,R×S,3,2(S),B<5(R),R 2<2 S, R S。解:RSABCRSABCRSABC367367723257257723443443345R×SR.A R.B R.C S.A S.B S.C3,2(S)CB 36 73 4554 36 77 2332 25 73 45 25 77 23 72 33 45 72 37 23 44 33 45 44 37 232<2B<5(R)A

2、BCRSR.A R.B R.C S.A S.B S.C723 72 33 45443RSABC7232.7 設(shè)有關(guān)系R和S: RABSBCabbccbeadebd B<C計(jì)算R S,R S,A=C(R×S),S R。be a2.8 假設(shè)關(guān)系U和V分別有m個(gè)元組和n個(gè)元組,給出下列表達(dá)式中可能的最小和最大的元組數(shù)量: UV UV UV F(U)×V (F為某個(gè)條件) L(U)V(其中L為某屬性集)解:操作最小元組數(shù)最大元組數(shù) UV0min(m,n) UVmax(m,n)m+n UV0m×nF(U)×V0m×nL(U)V0m2.17 設(shè)有三個(gè)

3、關(guān)系:T(T#,TNMAE,TITLE)C(C#,CNAME,T#)S(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)試用關(guān)系代數(shù)表達(dá)式表示下列查詢語(yǔ)句: 檢索年齡小于17歲的女學(xué)生的學(xué)號(hào)和姓名。 檢索男學(xué)生所學(xué)課程的課程號(hào)和課程名。 檢索男學(xué)生所學(xué)課程的任課教師的工號(hào)和姓名。 檢索至少選修兩門課的學(xué)生學(xué)號(hào)。 檢索至少有學(xué)號(hào)為S2和S4學(xué)生選修的課程的課程號(hào)。 檢索WANG同學(xué)不學(xué)的課程的課程號(hào)。 檢索全部學(xué)生都選修的課程的課程號(hào)與課程名。 檢索選修課程包含LIU老師所授全部課程的學(xué)生學(xué)號(hào)。解:S#,SNAME(AGE<17 SEX=F(S)c#,CNAME(SEX=&

4、#39;M'(SSCC)T#,TNAME(SEX='M'(SSCCT)1(1=4 25(SC×SC)2(1=S2 4=S4 2=5(SC×SC)C#(C)C#(SNAME='WANG'(SSC)C#,CNAME(C(S#,C#(SC)÷S#(S)S#,C#(SC)÷C#(TNAME='LIU'(CT)2.21 在教學(xué)數(shù)據(jù)庫(kù)的關(guān)系S、SC、C、T中,用戶有一查詢語(yǔ)句:檢索女同學(xué)選修課程的課程名和任課教師名。 試寫出該查詢的關(guān)系代數(shù)表達(dá)式。 畫出查詢表達(dá)式的語(yǔ)法樹。 使用啟發(fā)式優(yōu)化算法,對(duì)語(yǔ)法樹進(jìn)行優(yōu)化

5、,并畫出優(yōu)化后的語(yǔ)法樹。解: 【3.2】設(shè)教學(xué)數(shù)據(jù)庫(kù)中有4個(gè)關(guān)系:教師關(guān)系 T(T#,TNAME,TITLE)課程關(guān)系C(C#,CNAME,T#)學(xué)生關(guān)系S(S#,SNAME,AGE,SEX)選課關(guān)系 SC(S#,C#,SCORE)試用SQL查詢語(yǔ)句表示下列查詢。解:檢索年齡小于17歲的女學(xué)生的學(xué)號(hào)和姓名。SELECT S#SNAMEFROM SWHERE AGE<17 AND SEX=F檢索男學(xué)生所學(xué)課程的課程號(hào)和課程名。SELECT CC#,CNAME (連接查詢方式)FROM S,SC,CWHERE SS#=SC.S# AND SC.C#=C.C# AND SEX=M;檢索男學(xué)生所

6、學(xué)課程的任課老師的工號(hào)和姓名。SELECT T.T#, TNAMEFROM S,SC,C,TWHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND SEX=M;檢索至少選修兩門課程的學(xué)生學(xué)號(hào)。SELECT DISTINCT X.S#FROM SC AS X, SC AS YWHERE X.S#=Y.S# AND X.C#!=Y.C#;檢索至少有學(xué)號(hào)為S2和S4的學(xué)生選修的課程的課程號(hào)。SELECT DISTINCT X.C#FROM SC AS X, SC AS YWHERE X.S#=S2 AND Y.S#=S4 AND X.C#=Y.C#;檢索W

7、ANG同學(xué)不學(xué)的課程的課程號(hào)。SELECT C#FROM CWHERE NOT EXISTS(SELECT *FROM S, SCWHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=WANG);檢索全部學(xué)生都選修的課程的課程號(hào)與課程名。SELECT C#,CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE S#=S.S# AND C#=C.C#);檢索選修課程包含LIU老師所授全部課程的學(xué)生學(xué)號(hào)。法一:SELECT DISTINCT S#FROM SC A

8、S XWHERE NOT EXISTS(SELECT *FROM C,TWHERE C.T#=T.T# AND TNAME=LIUAND NOT EXISTS(SELECTFROM SC AS YWHERE Y.S#=X.S# AND Y.C#=C.C#);法二:SELECT DISTINCT S#FROM SC XWHERE NOT EXISTS(SELECT C# FROM C,TWHERE C.T#=T.T# AND TNAME='LIU)EXCEPT(SELECT C# FROM SC Y WHERE Y.S#=X.S#);【37】試用SQL查詢語(yǔ)句表達(dá)下列對(duì)第32題中4個(gè)基本

9、表T、C、S、SC的查詢。統(tǒng)計(jì)有學(xué)生選修的課程門數(shù)。SELECT COUNT(DISTINCT C#) FROM SC;求選修C4課程的女學(xué)生的平均年齡。SELECT AVG(AGE)FROM S,SCWHERE SS#=SCS# AND C#=C4 AND SEX=F:求LIU老師所授的每門課程的平均成績(jī)。SELECT CC#AVG(SCORE)FROM SC,C,TWHERE SCC#=CC# AND CT#=TT# AND TNAME=LIUGROUP BY CC#;統(tǒng)計(jì)選修每門課程的學(xué)生人數(shù)(超過l0人的課程才統(tǒng)計(jì))。要求顯示課程號(hào)和人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,則按課程號(hào)

10、升序排列。SELECT C#COUNT(S#)FROM SCGROUP BY C#HAVING COUNT(*)>10ORDER BY 2 DESC,1;檢索學(xué)號(hào)比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。SELECT SNAMEFROM SWHERE S#>ALL(SELECT S# FROM SWHERE SNAME=WANG)AND AGE<ALL( SELECT AGEFROM SWHERE SNAME=WANG);在表SC中檢索成績(jī)?yōu)榭罩档膶W(xué)生的學(xué)號(hào)和課程號(hào)。SELECT S#, C#FROM SCWHERE SCORE IS NULL;檢索姓名以L開頭的所有學(xué)生的姓

11、名和年齡。SELECT SNAME, AGEFROM SWHERE SNAME LIKE L;求年齡大于女同學(xué)平均年齡的男學(xué)生的姓名和年齡。SELECT SNAME, AGEFROM SWHERE SEX=MAND AGE>(SELECT AVG(AGE)FROM SWHERE SEX=F);求年齡大于所有女同學(xué)年齡的男學(xué)生的姓名和年齡。SELECT SNAME, AGEFROM SWHERE SEX=MAND AGE>ALL(SELECT AGEFROM SWHERE SEX=F);【312】解:INSERT INTO CVALUES(C8,VC+,T6);法一:INSERT I

12、NTO FACULTY(TNAME)SELECT DISTINCT TNAMEFROM (SELECT TNAME,CC#,AVG(SCORE) FROM T, C, SC WHERE TT#=CT# AND CC#=SCC# GROUP BY TNAME,CC#) AS RESULT(TNAME,C#,AVGSCORE) AS XWHERE 80<=ALL(SELECT AVGSCORE FROM RESULT AS Y WHERE YTNAME=XTNAME);法二INSERT INTO FACULTY(TNAME)SELECT DISTINCT TNAMEFROM T, C, SC

13、 WHERE CC#=SCC# AND TT#=CT#AND T# NOT IN (SELECT T# FROM C WHERE C# IN (SELECT C# FROM SC GROUP BY C# HAVING AVG(SCORE)<=80)DELETE FROM SC WHERE SCORE IS NULL;DELETE FROM SC WHERE S# IN(SELECT S# FROM S WHERE SEX=F) AND C# IN(SELECT C# FROM C, T WHERE C.T#=T.T# AND TNAME=LIU);UPDATE SC SET SCORE=

14、60 WHERE SCORE<60 AND C# IN(SELECT C#FROM C WHERE CNAME=MATHS);UPDATE SC SET SCORE=SCORE * 1.05 WHERE S # IN(SELECT S# FROM S WHERE SEX='F) AND SCORE<(SELECT AVG(SCORE) FROM SC);用兩個(gè)UPDATE語(yǔ)句實(shí)現(xiàn):UPDATE SCSET SCORE=SCORE * 1.04WHERE C#=C4AND SCORE>70;UPDATE SCSET SCORE=SCORE * 1.05WHERE C#=

15、C4AND SCORE<=70;這兩個(gè)UPDATE語(yǔ)句的順序不能顛倒。用一個(gè)UPDATE語(yǔ)句實(shí)現(xiàn):UPDATE SCSET SCORE=SCORE * CASEWHEN SCORE>70 THEN 1.04ELSE l.05ENDWHERE C#=C4;UPDATE SC SET SCORE=SCORE * 1.05 WHERE SCORE<(SELECT AVG(SCORE) FROM SC);【313】設(shè)數(shù)據(jù)庫(kù)中有3個(gè)關(guān)系:職工表 EMP(E#,ENAME,AGE,SEX,ECITY),其屬性分別表示職工工號(hào)、姓名、年齡、性別和籍貫。工作表 WORKS(E#,C#,SAL

16、ARY),其屬性分別表示職工工號(hào)、工作的公司編號(hào)和工資。公司表 COMP(C#,CNAME,CITY),其屬性分別表示公司編號(hào)、公司名稱和公司所在城市。試用SQL語(yǔ)句寫出下列操作:用CREATE TABLE語(yǔ)句創(chuàng)建上述3個(gè)表,需指出主鍵和外鍵。檢索超過50歲的男職工的工號(hào)和姓名。假設(shè)每個(gè)職工只能在一個(gè)公司工作,檢索工資超過1 000元的男性職工工號(hào)和姓名。假設(shè)每個(gè)職工可在多個(gè)公司工作,檢索至少在編號(hào)為C4和C8的公司兼職的職工工號(hào)和姓名。檢索在聯(lián)華公司工作、工資超過1 000元的男性職工的工號(hào)和姓名。假設(shè)每個(gè)職工可在多個(gè)公司工作,檢索每個(gè)職工的兼職公司數(shù)目和工資總數(shù),顯示(E#,NUM,SUM

17、_SALARY),分別表示工號(hào)、公司數(shù)目和工資總數(shù)。工號(hào)為E6的職工在多個(gè)公司工作,試檢索至少在E6職工兼職的所有公司工作的職工工號(hào)。檢索聯(lián)華公司中低于本公司平均工資的職工工號(hào)和姓名。在每一公司中為50歲以上的職工加薪100元(若職工為多個(gè)公司工作,可重復(fù)加)。在EMP表和WORKS表中刪除年齡大于60歲的職工有關(guān)元組。解:CREATE TABLE EMP (E# CHAR(4) NOT NULL, ENAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1), ECITY CHAR(20), PRIMARY KEY(E#);CREATE TABLE CO

18、MP(C# CHAR(4) NOT NULL,CNAME CHAR(20) NOT NULL,CITY CHAR(20),PRIMARY KEY(C#);CREATE TABLE WORKS(E# CHAR(4) NOT NULL,C# CHAR(4) NOT NULL,SALARY SMALLINT,PRIMARY KEY(E#,C#),F(xiàn)OREIGN KEY(E#) REFERENCES EMP(E#),F(xiàn)OREIGN KEY(C#) REFERENCES COMP(C#);(SELECT E#,ENAMEFROM EMPWHERE AGE>50 AND SEX=M;SELECT E

19、MPE#,ENAMEFROM EMP, WORKSWHERE EMP.E#=WORKSE# AND SALARY>1000 AND SEX=M;SELECT AE#,AENAMEFROM EMP A,WORKS B,WORKS CWHERE AE#=BE# AND BE#=CE#AND BC#=C4 AND CC#=C8;SELECT AE#,AENAMEFROM EMP A,WORKS B,COMP CWHERE AE#=BE# AND BC#=C#AND CNAME=聯(lián)華公司 AND SALARY>1000 AND SEX='M;SELECT E#,COUNT(C#)

20、AS NUM,SUM(SALARY) AS SUM_SALARYFROM WORKSGROUP BY E#;SELECT X.E#FROM WORKS XWHERE NOT EXISTS(SELECT *FROM WORKS YWHERE E#=E6AND NOT EXISTS(SELECT *FROM WORKS ZWHERE ZE#=XE# AND ZC#=YC#);SELECT AE#,AENAMEFROM EMP A,WORKS B,COMP CWHERE AE#=BE# AND BC#=CC# AND CNAME=聯(lián)華公司AND SALARY<(SELECT AVG(SALAR

21、Y)FROM WORKSCOMP CWHERE WORK SC#=COMPC# AND CNAME=聯(lián)華公司);UPDATE WORKSSET SALARY=SALARY+100WHERE E# IN(SELECT E# FROM EMP WHERE AGE>50);DELETE FROM WORKSWHERE E# IN (SELECT E# FROM EMP WHERE AGE>60);DELETE FROM EMPWHERE AGE>60;4.8 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)= AB,CB ,則相對(duì)于F,試寫出關(guān)系模式R的關(guān)鍵碼。并說明理由。解:R的關(guān)鍵碼為ACD。因?yàn)閺囊阎腇,只能推出ACDABCD。4.9 設(shè)關(guān)系模式R(ABCDE)上FD集為F,并且F=ABC,CDE,DEB,試判斷AB是R的候選鍵嗎?ABD呢?請(qǐng)做出解釋。解:從已知的F,可推出ABABC,但不能推出ABABCDE,因此不是。 從已知的F,可推出ABDABCD,ABDABCDE,因此是的。4.13 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)=AB,BC, 試

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論