第三部分-關系數(shù)據(jù)庫標準語言SQL_第1頁
第三部分-關系數(shù)據(jù)庫標準語言SQL_第2頁
第三部分-關系數(shù)據(jù)庫標準語言SQL_第3頁
第三部分-關系數(shù)據(jù)庫標準語言SQL_第4頁
第三部分-關系數(shù)據(jù)庫標準語言SQL_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第三部分 關系數(shù)據(jù)庫標準語言SQL一、單項選擇題1SQL語言是 的語言,易學習。 A過程化 B非過程化 C格式化 D導航式 答案:B2SQL語言是 語言。 A層次數(shù)據(jù)庫 B網(wǎng)絡數(shù)據(jù)庫 C關系數(shù)據(jù)庫 D非數(shù)據(jù)庫 答案:C3SQL語言具有 的功能。 A關系規(guī)范化、數(shù)據(jù)操縱、數(shù)據(jù)控制 B數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制 C數(shù)據(jù)定義、關系規(guī)范化、數(shù)據(jù)控制 D數(shù)據(jù)定義、關系規(guī)范化、數(shù)據(jù)操縱 答案:B4SQL語言的數(shù)據(jù)操縱語句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最頻繁的語句是 。 ASELECT BINSERT CUPDATE DDELETE 答案:A5SQL語

2、言具有兩種使用方式,分別稱為交互式SQL和 。 A提示式SQL B多用戶SQL C嵌入式SQL D解釋式SQL 答案:C6SQL語言中,實現(xiàn)數(shù)據(jù)檢索的語句是 。 ASELECT BINSERT CUPDATE DDELETE 答案:A7下列SQL語句中,修改表結(jié)構的是 。 AALTER BCREATE CUPDATE DINSERT 答案:A 第8到第11題基于這樣的三個表即學生表S、課程表C和學生選課表SC,它們的結(jié)構如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE) 其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,

3、C#為課程號,CN為課程名,GRADE為成績。8檢索所有比“王華”年齡大的學生姓名、年齡和性別。正確的SELECT語句是 。 ASELECT SN,AGE,SEX FROM S WHERE AGE(SELECT AGE FROM S WHERE SN=“王華”) BSELECT SN,AGE,SEX FROM S WHERE SN“王華” CSELECT SN,AGE,SEX FROM SWHERE AGE(SELECT AGE WHERE SN=“王華”) DSELECT SN,AGE,SEX FROM S WHERE AGE王華AGE 答案:A9檢索選修課程“C2”的學生中成績最高的學生的

4、學號。正確的SELECT語句是 。 ASELECT S# FORM SC WHERE C#=“C2” AND GRAD (SELECT GRADE FORM SC WHERE C#=“C2”) BSELECT S# FORM SC WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”) CSELECT S# FORM SC WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) DSELECT S# FORM SC WHERE C#=“C2”

5、AND GRADEALL (SELECT GRADE FORM SC WHERE C#=“C2”) 答案:D10檢索學生姓名及其所選修課程的課程號和成績。正確的SELECT語句是 。 ASELECT SSN,SCC#,SCGRADE FROM S WHERE SS#=SCS# BSELECT SSN,SCC#,SCGRADE FROM SC WHERE SS#SCGRADE CSELECT SSN,SCC#,SCGRADE FROM S,SC WHERE SS#=SCS# DSELECT SSN,SCC#,SCGRADE FROM SSC 答案:C11檢索選修四門以上課程的學生總成績(不統(tǒng)計不

6、及格的課程),并要求按總成績的降序排列出來。正確的SELECT語句是 。 ASELECT S#,SUM(GRADE)FROM SC WHERE GRADE=60 GROUP BY S# ORDER BY 2 DESC HAVING COUNT(*)4 WHERE C#=“C2” AND GRADE (SELECT GRADE FORM SC WHERE C#=“C2”) BSELECT S# FORM SC WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”) CSELECT S# FORM SC WHERE C#=“C

7、2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) DSELECT S# FORM SC WHERE C#=“C2” AND GRADEALL (SELECT GRADE FORM SC WHERE C#=“C2”) 答案:D12假定學生關系是S(S#,SNAME,SEX,AGE),課程關系是C(C#,CNAME,TEACHER),學生選課關系是SC(S#,C#,GRADE)。 要查找選修“COMPUTER”課程的“女”學生姓名,將涉及到關系 。 AS BSC,C CS,SC DS,C,SC 答案:D13如下面的數(shù)據(jù)庫的表中,若職工

8、表的主關鍵字是職工號,部門表的主關鍵字是部門號,SQL操作 不能執(zhí)行。 A從職工表中刪除行(025,王芳,03,720) B將行(005,喬興,04,750)插入到職工表中 C將職工號為,001的工資改為700 D將職工號為,038的部門號改為03答案:B 14若用如下的SQL語句創(chuàng)建一個student表: CREATE TABLE student(NO C(4) NOT NULL, NAME C(8) NOT NULL, SEX C(2), AGE N(2) 可以插入到student表中的是 。 A(1031,曾華,男,23) B(1031,曾華,NULL,NULL) C(NULL,曾華,男

9、,23) D(1031,NULL,男,23)答案:B二、填空題1SQL是 。 答案:結(jié)構化查詢語言2SQL語言的數(shù)據(jù)定義功能包括 、 、 和 。 答案:定義數(shù)據(jù)庫 定義基本表 定義視圖 定義索引3視圖是一個虛表,它是從 中導出的表。在數(shù)據(jù)庫中,只存放視圖的 ,不存放視圖的 。 答案:一個或幾個基本表 定義 視圖對應的數(shù)據(jù)4設有如下關系表R、S和T: 以BH,XM,XB,DWH) S(DWH,DWM) T(BH,XM,XB,DWH) 實現(xiàn)RT的SQL語句是 。 實現(xiàn)sDWH=100(R)的SQL語句是 。 實現(xiàn)XM,XB(R)的SQL語句是 。 實現(xiàn)XM,DWH(sXB=女(R))的SQL語句是

10、 。 實現(xiàn)Rwv S的SQL語句是 。 實現(xiàn)XM,XB,DWM(sXB=男(Rwv S))的SQL語句是 。 答案:SELECT * FROM R UNION SELECT * FROM T SELECT * FROM R WHERE DWH=100 SELECT XM,XB FROM R SELECT XM,DWH FROM R WHERE XB=“女” SELECT R.BH,R.XM,R.XB,R.DWH, S.DWM FROM R,S WHERE R.DWHS.DWH SELECT R.XM,R.XB,S.DWM FROM R,S WHERE R.DWH=S.DWH AND R.XB=

11、“男”5設有如下關系表R: R(No,NAME,SEX,AGE,CLASS) 主關鍵字是NO其中NO為學號,NAME為姓名,SEX為性別,AGE為年齡,CLASS為班號。寫出實現(xiàn)下列功能的SQL語句。 插入一個記錄(25,“李明”,“男”,21,“95031”); 。 插入“95031”班學號為30、姓名為“鄭和”的學生記錄; 。 將學號為10的學生姓名改為“王華”; 。 將所有“95101”班號改為“95091”; 。 刪除學號為20的學生記錄; 。 刪除姓“王”的學生記錄; 。答案:INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”) INSERT IN

12、TO R(NO,NAME,CLASS) VALUES(30,“鄭和”,“95031”) UPDATE R SET NAME=“王華”WHERE NO10 UPDATE R SET CLASS“95091”WHERE CLASS“95101” DELETE FROM R WHERE NO=20DELETE FROMR WHERE NAME LIKE“王”三簡述與應用題1敘述SQL語言支持的三級邏輯結(jié)構。答:SQL語言支持的三級邏輯結(jié)構略。 在概念層,對應概念模式的概念記錄型的基本表?;颈硎沁@樣的一種表,它本身實際存在,在Visual FoxPro中每個表在存儲中可用一個存儲文件來表示;在ORA

13、CLE中,同一個數(shù)據(jù)庫的多個表存儲在一個文件中。一個基本表就是一個關系,它不是由其他表導出的表?;颈硎鞘褂肅REATE TABLE語句建立的。 在外層(用戶層),用戶所看到的可以是基本表,也可以是視圖。視圖是一個虛擬表,它是由一個或幾個基本表或其他視圖導出的表,它不是直接存在于物理存儲器上的表。視圖是使用CREATE VIEW語句建立的。在內(nèi)層(物理層),每個基本表用一個存儲文件來表示,即用一組類型相同的存儲記錄值來表示。DBA可以對物理存儲文件進行操作。2敘述使用SQL語言實現(xiàn)各種關系運算的方法。 答: SQL語言沒有提供關系的笛卡爾積、交和差運算。其他關系運算對應的SQL語句格式是: R

14、S SELECT語句(生成R) UNION SELECT語句(生成S) 選擇 SELECT* FROM表 WHERE指定選擇的條件 投影 SELECT投影字段列表 FROM表 連接 SELECT連接的字段列表 FROM連接的兩個表名 WHERE連接條件3設有如下所示的三個關系,并假定這三個關系框架組成的數(shù)據(jù)模型就是用戶子模式。其中各個屬性的含義如下:A#(商店代號)、ANAME(商店名)、WQTY(店員人數(shù))、CITY(所在城市)、B#(商品號)、BNAME(商品名稱)、PRICE(價格)、QTY(商品數(shù)量)。試用SQL語言寫出下列查詢,并給出執(zhí)行結(jié)果:(1).找出店員人數(shù)不超過100人或者在

15、長沙市的所有商店的代號和商店名。SELECT A#,ANAME FROM A;WHERE WQTY100 OR CITY“長沙” (2).找出供應書包的商店名。SELECT A.ANAME FROM A,B,AB; WHERE A.A#AB.A# AND B.B#=AB.B# AND B.BNAME=“書包” (3).找出至少供應代號為256的商店所供應的全部商品的商店名和所在城市。SELECT A.ANAME,A.CITY FROM A,B;WHERE A.A#AB.A# AND AB.B# IN(SELECT AB.B#; FROM AB WHERE A#=“256”)AA#ANAMEWQ

16、TYCITY101百貨商店15長沙204長安商場89北京256西單商場500北京345鐵道商店76長沙620太平洋百貨412上海BB#BNAMEPRICE1鋼筆212羽毛球53復讀機3004書包76ABA#B#QTY101110510124210132510141042043612561241256291345114134521834547462041254設有圖書登記表TS,具有屬性:BNO(圖書編號),BC(圖書類別),BNA(書名),AU(著者),PUB(出版社)。按下列要求用SQL語言進行設計:(1).按圖書館編號BNO建立TS表的索引ITS。(2).查詢,按出版社統(tǒng)計其出版圖書總數(shù)。

17、(3).刪除索引ITS。 解:(1). USE TS INDEX ON BNO TO ITS(2). SELECT PUB,COUNT(BNO) FROM TS GROUP BY PUB(3). DELETE FILE ITS.IDX5己知三個關系R(A,B,C)、S(A,D,E)和T(D,F),其中,名稱相同的屬性為關聯(lián)屬性,C、E為數(shù)值型屬性。 試用SQL語句實現(xiàn)如下操作: (1).將R、S和T三個關系按關聯(lián)屬性建立一個視圖R-S-T; (2).對視圖R-S-T按屬性A分組后,求屬性C和E的平均值。解:(1).CREATE VIEW R-S-T AS SELECT R.A,B,C,S.D,

18、E,F(xiàn) FROM R,S,T WHERE R.AS.A AND S.DT.D(2).SELECT AVG(C),AVG(E) FROM R-S-T GROUP BY A6設有關系R(A,B)和S(A,C),A為相同屬性。 試用SQL語句實現(xiàn):(1).查詢屬性C50時,R中相關聯(lián)的屬性B之值。(2).當屬性C=40時,將R中與之相關連的屬性B值修改為b4。解:(1).SELECT B FROM R,S WHERE R.AS.A AND C50(2).UPDATE R SET B=b4 WHERE A IN (SELECT A FROM S WHERE C40)7已知R(A,B,C)和S(C,D,

19、E)兩個關系,如下圖所示。 執(zhí)行如下SQL語句:(1).CREATE VIEW H(A,BC,C,D,E) AS SELECT A,B,RC,D,E FROM R,S WHERE RCSC;(2).SELECT B,D,E FROM H WHERE CC2試給出:(1).視圖H;(2).對視圖H的查詢結(jié)果。RS A B Ca1 b1 c1a2 b2 c2a3 b3 c3C D Ec1 d1 e1c2 d2 e2c3 d3 e3解:本題的結(jié)果如圖所示。 對H的查詢結(jié)果視圖H A B C D Ea1 b1 c1 d1 e1a2 b2 c2 d2 e2a3 b3 c3 d3 e3B D Eb1 d2

20、 e2b2 d2 e28已知關系R如圖所示。A B C97 b1 8497 b2 9297 b3 9898 b1 7298 b2 8498 b3 9599 b1 8899 b2 94 試用SQL語句實現(xiàn)下列操作:(1).按屬性A分組,求出每組中在屬性C上的最大值和最小值,且將它們置于視圖RVE中。(2).在視圖RVE中查詢屬性A=98的記錄。解:(1).CREATE VIEW RVE(A,CMAX,CMIN) AS SELECT A,MAX(C),MIN(C) FROMR GROUP BY A;(2).SELECT * FROM RVE WHERE A=989已知學生表S和學生選課表SC。其關

21、系模式如下: S(SNo,SN,SD,PROV) SC(SNO,CN,GR) 其中,SNO為學號,SN為姓名,SD為系名,PROV為省區(qū),CN為課程名,GR為分數(shù)。 試用SQL語言實現(xiàn)下列操作:(1).查詢“信息系”的學生來自哪些省區(qū)。(2).按分數(shù)降序排序,輸出“英語系”學生選修了“計算機”課程的學生的姓名和分數(shù)。解:(1).SELECT DISTINCT PROV FROM S WHERE SD=“信息系”(2).SELECT SN,GR FROM S,SC WHERE SD=“英語系”AND CN=“計算機”AND S.SNOSC.SNO ORDER BY GR DESC;10設有學生表

22、S(SNO,SN)(SNO為學號,SN為姓名)和學生選課表SC(SNO,CNO,CN,G)(CNO為課程號,CN為課程名,G為成績),試用SQL語言完成以下各題:(1).建立一個視圖V-SSC(SN,SN,CN,CN,G),并按CNO升序排序;(2).從視圖V-SSC上查詢平均成績在90分以上的SN、CN和G。解:(1).CREATE VIEW V-SSC(SNO,SN,CNO,CN,G) AS SELECT S.SNO, S.SN,CNO,SC.CN,SC.G FROM S,SC WHERE SSNO=SCSNO ORDER BY CNO(2).SELECT SN,CN,G FROM V-S

23、SC GROUP BY SNO HAVING AVG(G)9011設有關系模式: SB(SN,SNAME,CITY) 其中,S表示供應商,SN為供應商代號,SNAME為供應商名字,CITY為供應商所在城市,主關鍵字為SN。 PB(PN,PNAME,COLOR,WEIGHT) 其中P表示零件,PN為零件代號,PNAME為零件名字,COLOR為零件顏色,WEIGHT為零件重量,主關鍵字為PN。 JB(JN,JNAME, CITY) 其中,J表示工程,JN為工程編號,JNAME為工程名字,CITY為工程所在城市,主關鍵字為JN。 SPJB(SN,PN,JN,QTY) 其中,SPJ表示供應關系,SN是

24、為指定工程提供零件的供應商代號,PN為所提供的零件代號,JN為工程編號,QTY表示提供的零件數(shù)量,主關鍵字為(SN,PN,JN),外部關鍵字為SN,PN,JN。寫出實現(xiàn)以下各題功能的SQL語句:(1).取出所有工程的全部細節(jié);SELECT * FROM JB (2).取出所在城市為上海的所有工程的全部細節(jié);SELECT * FROM JB WHERE CITY=“上?!?3).取出重量最輕的零件代號;SELECT PN FROM PB WHERE WEIGHT=(SELECT MIN(WEIGHT) FROM PB) (4).取出為工程J1提供零件的供應商代號;SELECT SN FROM S

25、PJB WHERE JN“J1”(5).取出為工程J1提供零件P1的供應商代號;SELECT SN FROM SPJB; WHERE JN=JlAND PNPl(6).取出由供應商S1提供零件的工程名稱;SELECT JB.JNAME FROM JB,SPJB WHERE JB.JNSPJB.JN AND SPJB.SN=S1(7).取出供應商S1提供的零件的顏色;SELECT DISTINCT PB.COLOR FROM PB,SPJBWHERE PB.PNSPJB.PN AND SPJBSN=S1(8).取出為工程J1或J2提供零件的供應商代號;SELECT DISTINCT SN FRO

26、M SPJBWHERE JN=J1OR JN=J2(9).取出為工程J1提供紅色零件的供應商代號;SELECT DISTINCT SPJB.SN FROM SPJB,PB WHERE PB.PN=SPJB.PN AND SPJB.JN=J1AND PB.COLOR=紅 (10).取出為所在城市為上海的工程提供零件的供應商代號;SELECT DISTINCT SPJB.SN FROM SPJB, JB WHERE SPJB.JN=JB.JN AND JB.CITY上海(11).取出為所在城市為上?;虮本┑墓こ烫峁┘t色零件的供應商代號;SELECT SPJB.SN FROM PB,JB SPJB

27、WHERE SPJB.PN=PB.PN AND JB.JN=SPJB.JN AND PB.COLOR=紅 AND JB.CITY=上海(12).取出供應商與工程所在城市相同的供應商提供的零件代號;SELECT DISTINCT SPJB.PN FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY=JB.CITY (13).取出上海的供應商提供給上海的任一工程的零件的代號;SELECT SPJB.PN FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND S

28、B.CITY=上海(14).取出至少由一個和工程不在同一城市的供應商提供零件的工程代號;SELECT DISTINCT SPJB.JN FROM SB,JB,SPJBWHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITYJB.CITY(15).取出上海供應商不提供任何零件的工程的代號;SELECT DISTINCT JN FROM SPJB WHERE JN NOT IN (SELECT DISTINCT SPJB.JN FROM SB,SPJB WHERE SB.SN=SPJB.SN AND SB.CITY=上海)(16).取出這樣一些供應商代號,

29、它們能夠提供至少一種由紅色零件的供應商提供的零件;SELECT DISTINCT SPJB.SN FROM PB,SPJB WHERE SPJB.PN IN (SELECT SPJB.PN FROM SPJB,SB,PB WHERE SB.SN=SPJB.SN AND PB.PN=SPJB.PN AND PB.COLOR=紅)(17).取出由供應商S1提供零件的工程的代號;SELECT DISTINCT SPJB.JN FROM SB,PB,SPJB WHERE SB.SN=SPJB.SN AND PB.PN=SPJB.PN AND SB.SN=S1(18).取出所有這樣的一些CITY,CIT

30、Y二元組,使得第1個城市的供應商為第2個 城市的工程提供零件;SELECT DISTINCT SB.CITY, JB.CITY FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN (19).取出所有這樣的三元組CITY,PN CITY,使得第1個城市的供應商為第2個城市的工程提供指定的零件; SELECT DISTINCT SB.CITY, SPJB.PN, JB.CITY FROM SB,JB,SPJBWHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN(20).重復(19)題,但不檢索兩個CITY值相同的三元組。

31、SELECT DISTINCT SB.CITY, SPJB.PN, JB.CITY FROM SB, JB, SPJBWHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITYJB.CITY12以下面的數(shù)據(jù)庫為例,用SQL完成以下檢索。關系模式如下:倉庫(倉庫號,城市,面積) WAREHOUSE(WMNO,CITY,SIZE)職工(倉庫號,職工號,工資) EMPLOYEE(WHNO,ENO,SALARY)訂購單(職工號,供應商號,訂購單號,訂購日期) ORDER(SNO,SNO,ONO,DATE)供應商(供應商號,供應商名,地址) SUPPLIER(SN

32、O,SNAME,ADDR)(1).檢索在北京的供應商的名稱。SELECT SNAME FROM SUPPLIER WHERE ADDR=“北京”;(2).檢索發(fā)給供應商S6的訂購單號。SELECT ONO FROM ORDER WHERE SNO=“S6”;(3).檢索出職工E6發(fā)給供應商S6的訂購單號。SELECT ONO FROM ORDER WHERE SNO=“S6” AND ENO=“E6”;(4).檢索出向供應商S3發(fā)過訂購單的職工的職工號和倉庫號。SELECT ENO,WHNO FROM EMPLOYEE WHERE ENO IN (SELECT ENO FROM ORDER W

33、HERE SNO=“S3”);或:SELECT ENO,WHNO FROM EMPLOYEE,ORDERWHERE EMPLOYEE.ENO=ORDER.ENO AND ORDER.SNO=“S3”;(5).檢索出目前與S3供應商沒有聯(lián)系的職工信息。SELECT ENO,WHNO FROM EMPLOYEEWHERE ENO NOT IN (SELECT ENO FROM ORDER WHERE SNO=“S3”);(6).檢索出目前沒有任何訂購單的供應商信息。SELECT * FROM SUPPLIER WHERE SNO NOT IN (SELECT SNO FROM ORDER);(7)

34、.檢索出和職工E1、E3都有聯(lián)系的北京的供應商信息。SELECT * FROM SUPPLIER WHERE ADDR=“北京” AND (EXISTS (SELECT * FROM ORDER WHERE SNO=SUPPIER.SNO AND ENO=“E3”)AND (EXISTS (SELECT * FROM ORDER WHERE SNO=SUPPIER.SNO AND ENO=“E6”);(8).檢索出目前和華通電子公司有業(yè)務聯(lián)系的每個職工的工資。SELECT ENO,SALARY FROM EMPLOYEE WHERE ENO IN (SELECT ENO FROM ORDER

35、WHERE SNO IN (SELECT SNO FROM SUPPLIER WHERE ADDR=“華通電子公司”);或:SELECT ENO,SALARY FROM EMPLOYEE,ORDER,SUPPLIERWHERE EMPLOYEE.ENO=ORDER.ENO AND ORDER.SNO=SUPPLIER.SNO AND SUPPLIER.ADDR=“華通電子公司”;(9).檢索出與工資在1220元以下的職工沒有聯(lián)系的供應商的名稱。SELECT SNAME FROM SUPPLIER WHERE SNO NOT IN (SELECT SNO FROM ORDER WHERE ENO

36、 IN (SELECT ENO FROM EMPLOYEE WHERE SALARY<1220);(10).檢索出向S4供應商發(fā)出訂購單的倉庫所在的城市。SELECT CITY FROM WAREHOUSEWHERE WHNO IN (SELECT WHNO FROM EMPLOYEE WHERE ENO IN (SELECT ENO FROM ORDER WHERE SNO=“S4”);或:SELECT CITY FROM WAREHOUSE,EMPLOYEE,ORDERWHERE WAREHOUSE.WHNO=EMPLOYEE.WHNO AND EMPLOYEE.ENO=ORDER.

37、ENO AND ORDER.SNO=“S4”;(11).檢索出在上海工作并且向S6供應商發(fā)出了訂購單的職工號。SELECT ENO FROM EMPLOYEE WHERE WHNO IN (SELECT WHNO FROM WAREHOUSE WHERE CITY=“上海”)AND (ENO IN SELECT ENO FROM ORDER WHERE SNO=“S6”); 或:SELECT ENO FROM EMPLOYEE,WAREHOUSE,ORDERWHERE EMPLOYEE.WHNO=WREHOUSE.WHNOAND WREHOUSE.CITY=“上海” AND EMPLOYEE.

38、ENO=ORDER.ENO AND ORDER.SNO=“S6”;(12).檢索出在廣州工作并且只向S6供應商發(fā)出了訂購單的職工號。SELECT ENO FROM EMPLOYEEWHERE (WHNO IN SELECT WHNO FROM WAREHOUSE WHERE CITY=“廣州”)AND (ENO IN SELECT ENO FROM ORDER WHERE SNO=“S6”)AND (NOT EXISTS (SELECT * FROM ORDER WHERE SNO<>“S6” AND ENO=EMPLOYEE.ENO); (13).檢索出由工資多于1230元的職工

39、向北京的供應商發(fā)出的訂購單號。SELECT ONO FROM ORDER WHERE (ENO IN SELECT ENO FROM EMPLOYEE WHERE SALARY>1230) AND (SNO IN SELECT SNO FROM SUPPLIER WHERE ADDR=“北京” );或:SELECT ONO FROM ORDER,EMPLOYEE,SUPPLIERWHERE ORDER.ENO= EMPLOYEE.ENO AND EMPLOYEE.SALARY>1230AND ORDER.SNO= SUPPLIER.SNO AND SUPPLIER. ADDR=“北

40、京”;(14).檢索出倉庫的個數(shù)。SELECT COUNT(*) FROM WAREHOUSE;(15).檢索出有最大面積的倉庫信息。SELECT * FROM WAREHOUSE OUTERWHERE OUTER.SIZE=(SELECT MAX(SIZE) FROM WAREHOUSE INNER);(16).檢索出所有倉庫的平均面積。SELECT AVG(SIZE) FROM WAREHOUSE;(17).檢索出向S4供應商發(fā)出訂購單的那些倉庫的平均面積。SELECT AVG(SIZE) FROM WAREHOUSE WHERE WHNO IN (SELECT WHNO FROM EMP

41、LOYEEWHERE ENO IN (SELECT ENO FROM ORDER WHERE SNO=“S4”);(18).檢索出每個城市的供應商個數(shù)。SELECT CITY,COUNT(SNO) FROM SUPPLIER GROUP BY CITY;(19).檢索出每個倉庫中工資多于1220元的職工個數(shù)。SELECT WHNO,COUNT(ENO) FROM EMPLOYEE WHERE SALARY>1220 GROUP BY WHNO;或:SELECT WHNO,COUNT(ENO) FROM EMPLOYEE GROUP BY WHNO HAVING SALARY>122

42、0;(20).檢索出和面積最小的倉庫有聯(lián)系的供應商的個數(shù)。SELECT COUNT(DISTINCT SNO) FROM ORDERWHERE ENO IN SELECT ENO FROM EMPLOYEE WHERE WHNO IN SELECT WHNO FROM WAREHOUSE OUTERWHERE OUTER.SIZE=SELECT MIN(SIZE) FROM WAREHOUSE INNER;(21).檢索出工資低于本倉庫平均工資的職工信息。SELECT * FROM EMPLOYEE OUTERWHERE OUTER.SALARY<(SELECT AVG(SALARY)

43、FROM EMPLOYEE INNERWHERE INNER.WHNO=OUTER.WHNO GROUP BY WHNO);13以下面的數(shù)據(jù)庫為例,用SQL完成以下更新操作。關系模式如下:倉庫(倉庫號,城市,面積) WAREHOUSE(WMNO,CITY,SIZE)職工(倉庫號,職工號,工資) EMPLOYEE(WHNO,ENO,SALARY)訂購單(職工號,供應商號,訂購單號,訂購日期) ORDER(SNO,SNO,ONO,DATE)供應商(供應商號,供應商名,地址) SUPPLIER(SNO,SNAME,ADDR)(1).插入一個新的供應商元組(S9,智通公司,沈陽)。INSERT INT

44、O SUPPLIER VALUES(S9,智通公司,沈陽);(2).刪除目前沒有任何訂購單的供應商。DELETE FROM SUPPLIERWHERE NOT EXISTS (SELECT * FROM ORDER WHERE ORDER.SNO=SUPPLIER.SNO);或:DELETE FROM SUPPLIER WHERE SNO NOT IN (SELECT SNO FROM ORDER);(3).刪除由在上海倉庫工作的職工發(fā)出的所有訂購單。DELETE FROM ORDER WHERE ENO IN (SELECT ENO FROM EMPLOYEE WHERE WHNO IN SELECT WHNO FROM WAREHOUSE WHERE CITY=“上?!保?4).北京的所有倉庫增加100m2的面積。UPDATE WAREHOUSE SET SIZE=SIZE+100 WHERE CITY=“北京”;(5).給低于所有職工平均工資的職工提高5%的工資。UPDATE EMPLOYEE OUTERSET OUTER.SALARY=OUTER.SALARY*1.05WHERE

溫馨提示

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

評論

0/150

提交評論