數(shù)據(jù)庫(kù)原理第五章課后答案_第1頁(yè)
數(shù)據(jù)庫(kù)原理第五章課后答案_第2頁(yè)
數(shù)據(jù)庫(kù)原理第五章課后答案_第3頁(yè)
數(shù)據(jù)庫(kù)原理第五章課后答案_第4頁(yè)
數(shù)據(jù)庫(kù)原理第五章課后答案_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、5.4 對(duì)于教學(xué)數(shù)據(jù)庫(kù)的三個(gè)基本表 學(xué)生 S(S#,SNAME,AGE,SEX) 學(xué)習(xí) SC(S#,GRADE) 課程 C(C#,CNAME,TEACHER) 試用SQL的查詢(xún)語(yǔ)句表達(dá)下列查詢(xún):(1)檢索LIU老師所授課程的課程號(hào)和課程名。 SELECT C#,CNAME FROM C WHERE TEACHER=LIU(2)檢索年齡大于23歲的男學(xué)生的學(xué)號(hào)和姓名。 SELECT S#,SNAME FROM S WHERE (AGE>23) AND (SEX=M)(3)檢索至少選修LIU老師所授課程中一門(mén)課程的女學(xué)生姓名。 SELECT SNAME FROM S WHERE SEX=F

2、AND S# IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER=LIU) NOTICE:有多種寫(xiě)法,比如聯(lián)接查詢(xún)寫(xiě)法: SELECT SNAME FROM S,SC,C WHERE SEX=F AND SC.S#=S.S# AND SC.C#=C.C# AND TEACHER='LIU'但上一種寫(xiě)法更好一些。(4)檢索WANG同學(xué)不學(xué)的課程的課程號(hào)。 SELECT C# FROM C WHERE C# NOT IN (SELECT C# FROM SC WHERE S# IN (SELECT S#

3、 FROM S WHERE SNAME='WANG')(5)檢索至少選修兩門(mén)課程的學(xué)生學(xué)號(hào)。 SELECT DISTINCT X.SNO FROMSC X,SC Y WHERE X.SNO=Y.SNO AND X.CNO<>Y.CNONotice:對(duì)表SC進(jìn)行自連接,X,Y是SC的兩個(gè)別名。(6)檢索全部學(xué)生都選修的課程的課程號(hào)與課程名。 SELECT C#,CNAME FROM C WHERE NOT EXISTS (SELECT * FROM S WHERE S# NOT IN (SELECT * FROM SC WHERE SC.C#=C.C#)要從語(yǔ)義上分解

4、:(1)選擇課程的課程號(hào)與課程名,不存在不選這門(mén)課的同學(xué)。 其中,“不選這門(mén)課的同學(xué)”可以表示為:SELECT *FROM SWHERE S# NOT IN (SELECT * FROM SC WHERE SC.C#=C.C#)或者SELECT *FROM SWHERE NOT EXISTS (SELECT * FROM SC WHERE S.S#=C.S# ANDSC.C#=C.C# ) (7)檢索選修課程包含LIU老師所授課的學(xué)生學(xué)號(hào)。 SELECT DISTINCT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER='L

5、IU')(8)統(tǒng)計(jì)有學(xué)生選修的課程門(mén)數(shù)。 SELECT COUNT(DISTINCT C#) FROM SC(9)求選修C4課程的學(xué)生的平均年齡。 SELECT AVG(AGE) FROM S WHERE S# IN (SELECT S# FROM SC WHERE C#='C4')或者, SELECT AVG(AGE) FROM S,SC WHERE S.S#=SC.S# AND C#='004'(10)求LIU老師所授課程的每門(mén)課程的學(xué)生平均成績(jī)。SELECT CNAME,AVG(GRADE)FROM SC ,CWHERE SC.C#=C.C# AN

6、D TEACHER='LIU' GROUP BY C# (11)統(tǒng)計(jì)每門(mén)課程的學(xué)生選修人數(shù)(超過(guò)10人的課程才統(tǒng)計(jì))。要求輸出課程號(hào)和選修人數(shù), 查詢(xún)結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號(hào)升序排列。 SELECT DISTINCT C#,COUNT(S#) FROM SC GROUP BY C# HAVING COUNT(S#)>10 ORDER BY 2 DESC, C# ASC(12)檢索學(xué)號(hào)比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。 SELECT X.SNAME FROM S AS X, S AS Y WHERE Y.SNAME='WANG' AN

7、D X.S#>Y.S# AND X.AGE<Y.AGE(13)檢索姓名以WANG打頭的所有學(xué)生的姓名和年齡。 SELECT SNAME,AGE FROM S WHERE SNAME LIKE 'WANG%'(14)在SC中檢索成績(jī)?yōu)榭罩档膶W(xué)生學(xué)號(hào)和課程號(hào)。 SELECT S#,C# FROM SC WHERE GRADE IS NULL(15)求年齡大于女同學(xué)平均年齡的男學(xué)生姓名和年齡。 SELECT SNAME,AGE FROM S AS X WHEREX.SEX='男' AND X.AGE>(SELECT AVG(AGE) FROM S A

8、S Y WHERE Y.SEX='女')(16)求年齡大于所有女同學(xué)年齡的男學(xué)生姓名和年齡。 SELECT SNAME,AGE FROM S AS X WHERE X.SEX='男' AND X.AGE>ALL (SELECT AGE FROM S AS Y WHERE Y.SEX='女')5.6試用SQL更新語(yǔ)句表達(dá)對(duì)教學(xué)數(shù)據(jù)庫(kù)中三個(gè)基本表S、SC、C的各個(gè)更新操作:(1)往基本表S中插入一個(gè)學(xué)生元組(S9,WU,18)。 INSERT INTO S(S#,SNAME,AGE) VALUES('59','WU

9、9;,18)(2)在基本表S中檢索每一門(mén)課程成績(jī)都大于等于80分的學(xué)生學(xué)號(hào)、姓名和性別, 并把檢索到的值送往另一個(gè)已存在的基本表STUDENT(S,SANME,SEX)。 INSERT INTO STUDENT(S#,SNAME,SEX) SELECT S#,SNAME,SEX FROM S WHERE NOT EXISTS(SELECT * FROM SC WHERE GRADE<80 AND S.S#=SC.S#)(3)在基本表SC中刪除尚無(wú)成績(jī)的選課元組。 DELETE FROM SC WHERE GRADE IS NULL(4)把WANG同學(xué)的學(xué)習(xí)選課和成績(jī)?nèi)縿h去。 DELET

10、E FROM SC WHERE S# IN (SELECT S# FROM S WHERE SNAME='WANG')(5)把選修MATHS課不及格的成績(jī)?nèi)臑榭罩怠?UPDATE SC SET GRADE=NULL WHERE GRADE<60 AND C# IN (SELECT C# FROM C WHERE CNAME='MATHS')(6)把低于總平均成績(jī)的女同學(xué)成績(jī)提高5%。 UPDATE SC SET GRADE=GRADE*1.05 WHERE GRADE<(SELECT AVG(GRADE) FROM SC) AND S# IN (S

11、ELECT S# FROM S WHERE SEX='F')(7)在基本表SC中修改C4課程的成績(jī),若成績(jī)小于等于75分時(shí)提高5%, 若成績(jī)大于75分時(shí)提高4%(用兩個(gè)UPDATE語(yǔ)句實(shí)現(xiàn))。 UPDATE SC SET GRADE=GRADE*1.05 WHERE C#='C4' AND GRADE<=75 UPDATE SC SET GRADE=GRADE*1.04 WHERE C#='C4' AND GRADE>755.7在第1章例1.4中提到“倉(cāng)庫(kù)管理”關(guān)系模型有五個(gè)關(guān)系模式: 零件PART(P,PNAME,COLOR,WEI

12、GHT) 項(xiàng)目PROJECT(J,JNAME,DATE) 供應(yīng)商SUPPLIER(S,SNAME,SADDR) 供應(yīng)PP(J,P,TOTOAL) 采購(gòu)PS(P,S,QUANTITY)(1)試用SQLDDL語(yǔ)句定義上述五個(gè)基本表,并說(shuō)明主鍵和外鍵。 CREATE TABLE PART (P# CHAR(4) NOT NULL,PNAME CHAR(12) NOT NULL, COLOR CHAR(10),WEIGHT REAL, PRIMARY KEY(P#) CREATE TABLE PROJECT (J# CHAR(4) NOT NULL,JNAME CHAR(12) NOT NULL, D

13、ATE DATE, PRIMARY KEY(J#) CREATE TABLE SUPLIER (S# CHAR(4) NOT NULL,SNAME CHAR(12),SADDR VARCHAR(20), PRIMARY KEY(S#) CREATE TABLE P_P (J# CHAR(4),P# CHAR(4),TOTAL INTEGER, PRIMARY KEY(J#,P#), FOREIGN KEY(J#) REFERENCE PROJECT(J#), FOREIGN KEY(P#) REFERENCE PART(P#) CREATE TABLE P_S (P# CHAR(4),S# C

14、HAR(4),QUANTITY INTEGER, PRIMARY KEY(P#,S#), FOREIGN KEY(P#) REFERENCE PART(P#), FOREIGN KEY(S#) REFERENCE SUPLIER(S#) (2)試將PROGECT、PP、PART三個(gè)基本表的自然聯(lián)接定義為一個(gè)視圖VIEW1,PART、PS、SUPPLIER 三個(gè)基本表的自然聯(lián)接定義為一個(gè)視圖VIEW2。 CREATE VIEW VIEW1(J#,JNAME,DATE,P#,PNAME,COLOR,WEIGHT,TOTAL) AS SELECT PROJECT.J#,JNAME,DATE,PART

15、.P#,PNAME,COLOR,WEIGHT,TOTAL FROM PROJECT,PART,P_P WHERE PART.P#=P_P.P# AND P_P.J#=PROJECT.J# CREATE VIEW VIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY) AS SELECT PART.P#,PNAME,COLOR,WEIGHT,SUPPLIER.S#,SNAME,SADDR,QUANTITY FROM PART,P_S,SUPPLIER WHERE PART.P#=P_S.P# AND P_S.S#=SUPPLIER.S#(3)試在

16、上述兩個(gè)視圖的基礎(chǔ)上進(jìn)行數(shù)據(jù)查詢(xún):1)檢索上海的供應(yīng)商所供應(yīng)的零件的編號(hào)和名字。 SELECT P#,PNAME FROM VIEW2 WHERE SADDR='SHANGHAI'2)檢索項(xiàng)目J4所用零件的供應(yīng)商編號(hào)和名字。 SELECT S#,SNAME FROM VIEW2 WHERE P# IN(SELECT P# FROM VIEW1 WHERE J#='J4')5.8對(duì)于教學(xué)數(shù)據(jù)庫(kù)中基本表SC,已建立下列視圖: CREATEVIEWSGRADE(S,CNUM,AVGGRADE) ASSELECTS,COUNT(C),AVG(GRADE) FROMSC GROUPBYS 試判斷下列查詢(xún)和更新是否允許執(zhí)行。若允許,寫(xiě)出轉(zhuǎn)換到基本表SC上的相應(yīng)操作。(1) SELECT* FROMSGRADE 允許SELECT S#,COUNT(C#),AVG(GRADE) FROM SC GROUP BY S#(2) SELECTS,CNUM FROMSGRADE WHEREAVGGRADE80 允許SELECT S#,COUNT(C#) FROM SC WHERE AVG(GRADE)>80(3) SELECT

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論