




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫習題作業(yè)重點(第2-3-4章)2.6 設(shè)有關(guān)系R和S:RABCSABC3673 4 5257723723443計算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)ABCRSR.A R.B R
2、.C S.A S.B S.C723 72 33 45443RSABC7232.7 設(shè)有關(guān)系R和S: RABSBCabbccbeadebd B<C計算R S,R S,A=C(R×S),S R。be a2.8 假設(shè)關(guān)系U和V分別有m個元組和n個元組,給出下列表達式中可能的最小和最大的元組數(shù)量: UV UV UV F(U)×V (F為某個條件) L(U)V(其中L為某屬性集)解:操作最小元組數(shù)最大元組數(shù) UV0min(m,n) UVmax(m,n)m+n UV0m×nF(U)×V0m×nL(U)V0m2.17 設(shè)有三個關(guān)系:T(T#,TNMAE
3、,TITLE)C(C#,CNAME,T#)S(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)試用關(guān)系代數(shù)表達式表示下列查詢語句: 檢索年齡小于17歲的女學生的學號和姓名。 檢索男學生所學課程的課程號和課程名。 檢索男學生所學課程的任課教師的工號和姓名。 檢索至少選修兩門課的學生學號。 檢索至少有學號為S2和S4學生選修的課程的課程號。 檢索WANG同學不學的課程的課程號。 檢索全部學生都選修的課程的課程號與課程名。 檢索選修課程包含LIU老師所授全部課程的學生學號。解:S#,SNAME(AGE<17 SEX=F(S)c#,CNAME(SEX='M'(SS
4、CC)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 在教學數(shù)據(jù)庫的關(guān)系S、SC、C、T中,用戶有一查詢語句:檢索女同學選修課程的課程名和任課教師名。 試寫出該查詢的關(guān)系代數(shù)表達式。 畫出查詢表達式的語法樹。 使用啟發(fā)式優(yōu)化算法,對語法樹進行優(yōu)化,并畫出優(yōu)化后的語法樹。解
5、: 【3.2】設(shè)教學數(shù)據(jù)庫中有4個關(guān)系:教師關(guān)系 T(T#,TNAME,TITLE)課程關(guān)系C(C#,CNAME,T#)學生關(guān)系S(S#,SNAME,AGE,SEX)選課關(guān)系 SC(S#,C#,SCORE)試用SQL查詢語句表示下列查詢。解:檢索年齡小于17歲的女學生的學號和姓名。SELECT S#SNAMEFROM SWHERE AGE<17 AND SEX=F檢索男學生所學課程的課程號和課程名。SELECT CC#,CNAME (連接查詢方式)FROM S,SC,CWHERE SS#=SC.S# AND SC.C#=C.C# AND SEX=M;檢索男學生所學課程的任課老師的工號和姓
6、名。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;檢索至少選修兩門課程的學生學號。SELECT DISTINCT X.S#FROM SC AS X, SC AS YWHERE X.S#=Y.S# AND X.C#!=Y.C#;檢索至少有學號為S2和S4的學生選修的課程的課程號。SELECT DISTINCT X.C#FROM SC AS X, SC AS YWHERE X.S#=S2 AND Y.S#=S4 AND X.C#=Y.C#;檢索WANG同學不學的課程的課程
7、號。SELECT C#FROM CWHERE NOT EXISTS(SELECT *FROM S, SCWHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=WANG);檢索全部學生都選修的課程的課程號與課程名。SELECT C#,CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE S#=S.S# AND C#=C.C#);檢索選修課程包含LIU老師所授全部課程的學生學號。法一:SELECT DISTINCT S#FROM SC AS XWHERE NOT
8、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查詢語句表達下列對第32題中4個基本表T、C、S、SC的查詢。
9、統(tǒng)計有學生選修的課程門數(shù)。SELECT COUNT(DISTINCT C#) FROM SC;求選修C4課程的女學生的平均年齡。SELECT AVG(AGE)FROM S,SCWHERE SS#=SCS# AND C#=C4 AND SEX=F:求LIU老師所授的每門課程的平均成績。SELECT CC#AVG(SCORE)FROM SC,C,TWHERE SCC#=CC# AND CT#=TT# AND TNAME=LIUGROUP BY CC#;統(tǒng)計選修每門課程的學生人數(shù)(超過l0人的課程才統(tǒng)計)。要求顯示課程號和人數(shù),查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,則按課程號升序排列。SELECT C
10、#COUNT(S#)FROM SCGROUP BY C#HAVING COUNT(*)>10ORDER BY 2 DESC,1;檢索學號比WANG同學大,而年齡比他小的學生姓名。SELECT SNAMEFROM SWHERE S#>ALL(SELECT S# FROM SWHERE SNAME=WANG)AND AGE<ALL( SELECT AGEFROM SWHERE SNAME=WANG);在表SC中檢索成績?yōu)榭罩档膶W生的學號和課程號。SELECT S#, C#FROM SCWHERE SCORE IS NULL;檢索姓名以L開頭的所有學生的姓名和年齡。SELECT S
11、NAME, AGEFROM SWHERE SNAME LIKE L;求年齡大于女同學平均年齡的男學生的姓名和年齡。SELECT SNAME, AGEFROM SWHERE SEX=MAND AGE>(SELECT AVG(AGE)FROM SWHERE SEX=F);求年齡大于所有女同學年齡的男學生的姓名和年齡。SELECT SNAME, AGEFROM SWHERE SEX=MAND AGE>ALL(SELECT AGEFROM SWHERE SEX=F);【312】解:INSERT INTO CVALUES(C8,VC+,T6);法一:INSERT INTO FACULTY(T
12、NAME)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 WHERE CC#=SC
13、C# 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=60 WHERE SCOR
14、E<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);用兩個UPDATE語句實現(xiàn):UPDATE SCSET SCORE=SCORE * 1.04WHERE C#=C4AND SCORE>70;UPDATE SCSET SCORE=SCORE * 1.05WHERE C#=C4AND SCORE&l
15、t;=70;這兩個UPDATE語句的順序不能顛倒。用一個UPDATE語句實現(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ù)庫中有3個關(guān)系:職工表 EMP(E#,ENAME,AGE,SEX,ECITY),其屬性分別表示職工工號、姓名、年齡、性別和籍貫。工作表 WORKS(E#,C#,SALARY),其屬性分別表示職
16、工工號、工作的公司編號和工資。公司表 COMP(C#,CNAME,CITY),其屬性分別表示公司編號、公司名稱和公司所在城市。試用SQL語句寫出下列操作:用CREATE TABLE語句創(chuàng)建上述3個表,需指出主鍵和外鍵。檢索超過50歲的男職工的工號和姓名。假設(shè)每個職工只能在一個公司工作,檢索工資超過1 000元的男性職工工號和姓名。假設(shè)每個職工可在多個公司工作,檢索至少在編號為C4和C8的公司兼職的職工工號和姓名。檢索在聯(lián)華公司工作、工資超過1 000元的男性職工的工號和姓名。假設(shè)每個職工可在多個公司工作,檢索每個職工的兼職公司數(shù)目和工資總數(shù),顯示(E#,NUM,SUM_SALARY),分別表示
17、工號、公司數(shù)目和工資總數(shù)。工號為E6的職工在多個公司工作,試檢索至少在E6職工兼職的所有公司工作的職工工號。檢索聯(lián)華公司中低于本公司平均工資的職工工號和姓名。在每一公司中為50歲以上的職工加薪100元(若職工為多個公司工作,可重復加)。在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 COMP(C# CHAR(4)
18、 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 EMPE#,ENAMEFRO
19、M 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#) AS NUM,SUM(SA
20、LARY) 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(SALARY)FROM WORKSC
21、OMP 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 ,則相對于F,試寫出關(guān)系模式R的關(guān)鍵碼。并說明理由。解:R的關(guān)鍵碼為ACD。因為從已知的F,只能推出ACDABCD。4.9 設(shè)關(guān)系模式R(ABCDE)上FD集為F,并且F=ABC,CDE,DEB,試判斷AB是R的候選鍵嗎?ABD呢?請做出解釋。解:從已知的F,可推出ABABC,但不能推出ABABCDE,因此不是。 從已知的F,可推出ABDABCD,ABDABCDE,因此是的。4.13 設(shè)關(guān)系模式R(ABCD),F(xiàn)是R上成立的FD集,F(xiàn)=AB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療市場人員管理制度
- 關(guān)于大棚櫻桃管理制度
- 展廳安裝計劃方案(3篇)
- 學校路面保潔管理制度
- 公司讓常采購管理制度
- 崗位證書培訓管理制度
- 工廠建筑外觀改造方案(3篇)
- 印染公司倉庫管理制度
- DB62T 4449-2021 糖用甜菜品種 ZT6
- DB62T 4414-2021 芹菜栽培技術(shù)規(guī)程
- 2025榆林能源集團有限公司招聘工作人員(473人)筆試參考題庫附帶答案詳解析
- 2025年6.5世界環(huán)境日知識答題試題及答案
- 眼睛修復協(xié)議書
- 高考數(shù)學基本技能試題及答案
- 2024 - 2025學年一年級下冊道德與法治期末考試卷附答案(三套)
- 建筑工程項目的整體策劃與實施試題及答案
- 欠債用車抵債協(xié)議書
- 【遵義】2025年第十三屆貴州人才博覽會遵義市事業(yè)單位引進人才47人筆試歷年典型考題及考點剖析附帶答案詳解
- 美容項目退款協(xié)議書
- 山洪災(zāi)害防御培訓
- 水毀通村路修復施工組織設(shè)計
評論
0/150
提交評論