


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、WORD格式數據庫習題作業重點(第2-3-4 章)2.6 設有關系 R和 S:RABCSABC367345257723723443計算 RS,R-S,RS,R×S, 3,2 (S), B<5 (R),R2<2 S,RS。解:RSABCRS ABCRS ABC367367723257257723443443×3453, 2(S) CBR.AR.B R.CS.AS.BS.CR S3673455436772332257345257723723345723723443345443723 B<5(R)ABCR? SR.AR.BR.CS.AS.BS.C2<272
2、3723345443R? SABC7232.7設有關系 R 和 S:RABSBCabbccbeadebd計算 R?S,R ?S,A=C(R×S),S ? R。B<C專業資料整理bea2.8 假設關系 U和 V 分別有 m個元組和 n 個元組,給出下列表達式中可能的最小和最大的元組數量:?U V?UV?U?V?F(U) ×V( F 為某個條件)? L(U) V (其中 L 為某屬性集)解:操作最小元組數最大元組數?U V0min(m,n)?U Vmax(m,n)m+n?U ?V0m× n? F(U) × V0m× n? L(U) V0m2.
3、17 設有三個關系:T(T#,TNMAE,TITLE)C(C#,CNAME, T#)S(S#,SNAME, AGE,SEX)SC(S#, C#,SCORE)試用關系代數表達式表示下列查詢語句: 檢索年齡小于 17 歲的女學生的學號和姓名。 檢索男學生所學課程的課程號和課程名。 檢索男學生所學課程的任課教師的工號和姓名。 檢索至少選修兩門課的學生學號。 檢索至少有學號為S2 和 S4 學生選修的課程的課程號。 檢索 WANG同學不學的課程的課程號。 檢索全部學生都選修的課程的課程號與課程名。 檢索選修課程包含LIU 老師所授全部課程的學生學號。解:?S#, SNAME ( AGE< 17
4、SEX= F( S)? c#,CNAME ( SEX='M' ( S?SC?C)? T#,TNAME ( SEX='M' ( S?SC?C?T)? 1(1=4 2 5 (SC×SC)? 2(1=S2 4=S4 2=5(SC×SC)? C#(C) C#(SNAME='WANG' (S?SC)? C#,CNAME ( C?( S#,C#( SC)÷ S#( S)? S#, C#(SC)÷ C#( TNAME='LIU' (C?T)2.21 在教學數據庫的關系 S、SC、C、 T 中,用戶有一查詢
5、語句:檢索女同學選修課程的課程名和任課教師名。 試寫出該查詢的關系代數表達式。 畫出查詢表達式的語法樹。 使用啟發式優化算法,對語法樹進行優化,并畫出優化后的語法樹。解:【3.2】設教學數據庫中有4 個關系:教師關系T(T# , TNAME ,TITLE)課程關系 C(C# ,CNAME,T#)學生關系S(S#, SNAME,AGE,SEX)選課關系SC(S#, C#, SCORE)試用 SQL 查詢語句表示下列查詢。解:檢索年齡小于17 歲的女學生的學號和姓名。SELECT S# SNAMEFROM SWHERE AGE<17 AND SEX= F檢索男學生所學課程的課程號和課程名。S
6、ELECT C C#,CNAME ( 連接查詢方式)FROMS,SC, CWHERE S S#=SC.S# AND SC. C#=C.C# AND SEX= M;檢索男學生所學課程的任課老師的工號和姓名。SELECTT.T#, TNAMEFROMS,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 的學
7、生選修的課程的課程號。SELECT DISTINCT X.C#FROM SC AS X, SC AS YWHERE X. S#= S2AND Y .S#= S4AND X.C#=Y .C#;檢索 WANG 同學不學的課程的課程號。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 EXI
8、STS(SELECT *FROM SCWHERE S#=S.S# AND C#=C.C#) ;檢索選修課程包含LIU 老師所授全部課程的學生學號。法一:SELECT DISTINCT S#FROM SC AS XWHERE NOT EXISTS(SELECT *FROM C ,TWHERE C.T#=T.T# AND TNAME= LIU AND 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
9、,TWHERE C.T#=T. T# AND TNAME='LIU )EXCEPT(SELECT C# FROM SC YWHERE Y.S#=X.S#) ;【 3 7】試用 SQL 查詢語句表達下列對第 3 2 題中 4 個基本表 T、C、 S、 SC 的查詢。統計有學生選修的課程門數。SELECT COUNT(DISTINCT C#) FROM SC;求選修 C4 課程的女學生的平均年齡。SELECT AVG(AGE)FROM S , SCWHERE S S#=SC S# AND C#= C4AND SEX= F:求 LIU 老師所授的每門課程的平均成績。SELECT C C#AV
10、G(SCORE)FROM SC , C, TWHERE SC C#=C C# AND C T#=T T# AND TNAME= LIU GROUP BY C C#;統計選修每門課程的學生人數 (超過 l0 人的課程才統計 )。要求顯示課程號和人數, 查詢結果按人數降序排列,若人數相同,則按課程號升序排列。SELECT C# COUNT(S#)FROM SCGROUP BY C#HAVING COUNT(*)>10ORDER BY 2 DESC , 1;檢索學號比WANG 同學大,而年齡比他小的學生姓名。SELECT SNAMEFROM SWHERE S#>ALL(SELECT S#
11、 FROM SWHERE SNAME=WANG)AND AGE<ALL( SELECT AGEFROM SWHERE SNAME=WANG) ;在表 SC 中檢索成績為空值的學生的學號和課程號。SELECT S#, C#FROM SCWHERE SCORE IS NULL;檢索姓名以L 開頭的所有學生的姓名和年齡。SELECT SNAME, AGEFROM SWHERE SNAME LIKEL ;求年齡大于女同學平均年齡的男學生的姓名和年齡。SELECT SNAME, AGEFROM SWHERE SEX= MAND AGE>(SELECT A VG(AGE)FROM SWHERE
12、 SEX= F);求年齡大于所有女同學年齡的男學生的姓名和年齡。SELECT SNAME, AGEFROM SWHERE SEX= MAND AGE>ALL(SELECT AGEFROM SWHERE SEX= F);【 3 12】解:INSERT INTO CVALUES( C8, VC+, T6;)法一:INSERT INTO FACULTY(TNAME)SELECT DISTINCT TNAMEFROM (SELECT TNAME,C C#, AVG(SCORE)FROM T, C, SCWHERE T T#=C T# AND C C#=SC C#GROUP BY TNAME,CC
13、#)AS RESULT(TNAME , C#, AVG SCORE) AS X WHERE 80<=ALL( SELECT A VG SCOREFROM RESULT AS YWHERE Y TNAME=X TNAME) ;法二INSERT INTO FACULTY(TNAME)SELECT DISTINCT TNAMEFROM T, C, SCWHERE C C#=SC C# AND T T#=C T#AND T# NOT IN (SELECT T# FROM CWHERE C# IN(SELECT C# FROM SCGROUP BY C# HA VING A VG(SCORE)&l
14、t;=80)DELETE FROM SC WHERE SCORE IS NULL;DELETE FROM SCW HERE S# IN(SELECT S# FROM S WHERE SEX= F)AND C# IN(SELECT C# FROM C, T WHERE C.T#=T.T# AND TNAME=UPDATE SCSET SCORE=60WHERE SCORE<60AND C# IN(SELECT C#FROM C WHERE CNAME= MATHS);UPDATE SCSET SCORE=SCORE * 1.05WHERE S # IN(SELECT S# FROM S W
15、HERE SEX='F)AND SCORE<(SELECT A VG(SCORE) FROM SC) ;LIU );用兩個 UPDATE 語句實現:UPDATE SCSET SCORE=SCORE * 1.04WHERE C#= C4 AND SCORE>70;UPDATE SCSET SCORE=SCORE * 1.05WHERE C#= C4 AND SCORE<=70;這兩個 UPDATE 語句的順序不能顛倒。用一個 UPDATE 語句實現:UPDATE SCSET SCORE=SCORE * CASEWHEN SCORE>70 THEN 1.04ELSE
16、 l.05ENDWHERE C#= C4;UPDATE SCSET SCORE=SCORE * 1.05WHERE SCORE<(SELECT A VG(SCORE)FROM SC) ;【3 13】設數據庫中有3 個關系:職工表EMP(E# , ENAME , AGE , SEX , ECITY) ,其屬性分別表示職工工號、姓名、年齡、性別和籍貫。工作表WORKS(E# ,C#,SALARY) ,其屬性分別表示職工工號、工作的公司編號和工資。公司表COMP(C# ,CNAME , CITY) ,其屬性分別表示公司編號、公司名稱和公司所在城市。試用 SQL 語句寫出下列操作:用 CREAT
17、E TABLE語句創建上述3 個表,需指出主鍵和外鍵。檢索超過50 歲的男職工的工號和姓名。假設每個職工只能在一個公司工作,檢索工資超過1 000 元的男性職工工號和姓名。假設每個職工可在多個公司工作,檢索至少在編號為C4 和 C8 的公司兼職的職工工號和姓名。檢索在聯華公司工作、工資超過1 000 元的男性職工的工號和姓名。假設每個職工可在多個公司工作,檢索每個職工的兼職公司數目和工資總數,顯示(E#, NUM , SUM_SALARY) ,分別表示工號、公司數目和工資總數。工號為 E6 的職工在多個公司工作,試檢索至少在E6 職工兼職的所有公司工作的職工工號。檢索聯華公司中低于本公司平均工
18、資的職工工號和姓名。在每一公司中為50 歲以上的職工加薪100 元 (若職工為多個公司工作,可重復加) 。在 EMP 表和 WORKS 表中刪除年齡大于60 歲的職工有關元組。解: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) NOT NULL,CNAME CHAR(20) NOT NULLCITY CHAR(20) ,PRIMARY KEY(C#);,
19、CREATE TABLE WORKS(E# CHAR(4) NOT NULL,C# CHAR(4) NOT NULL,SALARY SMALLINT,PRIMARY KEY(E#, C#),FOREIGN KEY(E#) REFERENCES EMP(E#),FOREIGN KEY(C#) REFERENCES COMP(C#); (SELECT E# ,ENAMEFROM EMPWHERE AGE>50 AND SEX= M ; SELECT EMP E#, ENAME FROM EMP, WORKSWHERE EMP.E#=WORKS E# AND SALARY>1000 AN
20、DSEX= M; SELECT A E#, A ENAMEFROM EMP A , WORKS B ,WORKS CWHERE A E#=B E# AND B E#=C E#AND B C#= C4AND C C#= C8; SELECT A E#, A ENAMEFROM EMP A , WORKS B ,COMP CWHERE A E#=B E# AND B C#=C #AND CNAME= 聯華公司 AND SALARY>1000AND SEX='M; SELECT E# , COUNT(C#) AS NUM , SUM(SALARY) AS SUM_SALARY FROM
21、 WORKSGROUP BY E#; SELECT X.E#FROM WORKS X WHERE NOT EXISTS (SELECT *FROM WORKS Y WHERE E#= E6AND NOT EXISTS(SELECT *FROM WORKS ZWHERE Z E#=X E# AND Z C#= Y C#) ; SELECT A E#, A ENAMEFROM EMP A , WORKS B ,COMP CWHERE A E#=B E# AND B C#=C C# AND CNAME= 聯華公司 AND SALARY<(SELECT AVG(SALARY)FROM WORKS
22、 COMP CWHERE WORK S C#=COMP C# AND CNAME= 聯華公司 );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設關系模式 R(ABCD ),F 是 R 上成立的 FD 集, F= AB,CB ,則相對于 F,試寫出關系模式R 的關鍵碼。并說明理由。解: R 的關鍵碼為 ACD 。因為從已知的 F,只能推出 ACD ABCD 。4.9設關系模式 R(ABCDE)上 FD集為 F,并且 F= ABC,CDE,DE B,試判斷 AB是 R的候選鍵嗎? ABD呢?請做出解釋。解:從已知的F,可推出 AB ABC ,但不能推出 AB ABCDE ,因此不是。 從已知的 F,可推出 ABD ABCD , ABD ABCDE ,因此是的。4.13設關系模式 R(ABCD),F 是 R上成立的 FD集, F=AB,BC,+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內科醫患溝通技巧
- 開顱鉆顱術后引流管的護理
- 營銷策略流程圖
- 圓錐曲線精美課件
- 風險分散型草牧場托管養殖合同
- 市場營銷策劃與市場戰略制定專員勞動合同
- 知識產權評估與財務顧問服務合作協議
- 跨國公司車輛收費員勞務派遣協議書
- 商業大廈立體停車庫租賃合同
- 親子插畫故事書創作合同
- 湖南省婁底市漣源市2023-2024學年六年級下學期期末數學試題
- 應征公民政治考核表(含各種附表)
- 婚禮堂改造合同范本
- 2024年湖南省中考地理+生物試卷
- 【企業分拆上市問題探究文獻綜述5800字】
- 2024屆安徽省合肥市一六八中學高一數學第二學期期末聯考模擬試題含解析
- 孕產婦健康管理培訓課件
- 高校師德師風專題培訓課件
- 制造業中員工的倉庫管理培訓
- 砼回彈強度自動計算表
- 果汁飲料加工廠可行性研究方案
評論
0/150
提交評論