




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 判決協(xié)商合同范例
- 產(chǎn)品供貨合作合同范本
- 勞務(wù)合同范本建筑
- 賣(mài)房建設(shè)花園合同范本
- 雙清關(guān)合同范例
- 廈門(mén)購(gòu)房合同范本
- 醫(yī)用產(chǎn)品購(gòu)銷(xiāo)合同范例
- 廠房補(bǔ)充合同范本
- 印尼勞務(wù)合同范本
- 醫(yī)院標(biāo)識(shí)制作施工合同范本
- 碳酸鈣市場(chǎng)分析及競(jìng)爭(zhēng)策略分析報(bào)告
- 糖尿病性眼肌麻痹的護(hù)理查房
- 泡泡瑪特展廳活動(dòng)策劃
- 健康生活方式與健康促進(jìn)的科學(xué)研究
- 文旅部門(mén)消防培訓(xùn)課件
- 中職語(yǔ)文課件:1.1《送瘟神》課件14張2023-2024學(xué)年中職語(yǔ)文職業(yè)模塊
- 胃瘍(消化性潰瘍)中醫(yī)護(hù)理方案
- 《哲學(xué)概論(第2版)》-課件全套 第0-6章 緒論、哲學(xué)的形態(tài)-馬克思主義哲學(xué)
- 踝關(guān)節(jié)骨性關(guān)節(jié)炎課件整理
- 高處作業(yè)安全經(jīng)驗(yàn)分享
- 工余安健環(huán)管理制度
評(píng)論
0/150
提交評(píng)論