數(shù)據(jù)庫系統(tǒng)概論SQL語言復習題含答案_第1頁
數(shù)據(jù)庫系統(tǒng)概論SQL語言復習題含答案_第2頁
數(shù)據(jù)庫系統(tǒng)概論SQL語言復習題含答案_第3頁
數(shù)據(jù)庫系統(tǒng)概論SQL語言復習題含答案_第4頁
數(shù)據(jù)庫系統(tǒng)概論SQL語言復習題含答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、SQL語百習題一、單項選擇題1. SQL語言是 的語言,易學習。A.過程化 B.非過程化C.格式化 D.導航式答案:B2. SQL語言是A.層次數(shù)據(jù)庫B.網(wǎng)絡數(shù)據(jù)庫C.關系數(shù)據(jù)庫D.非數(shù)據(jù)庫答案:C3. SQL語言具有 的功能。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ù)操縱答案:B4. SQL語言的數(shù)據(jù)操縱語句包括SELECT , INSERT , UPDATE和DELETE等。其中最重要的,也是使用最頻繁的語句是 。A. SELECT B . INSERT C. UPDATE D. DELETE答案:A5

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

3、SEX為性別,AGE為年齡,DEPT為系別,C#為課程號, CN為課程名,GRADE為成績。8 .檢索所有比 生華”年齡大的學生姓名、 年齡和性別。正確的SELECT語句是A . SELECT SN , AGE , SEX FROM S WHERE AGE > (SELECT AGE FROM SWHERE SN='王華')B. SELECT SN , AGE, SEX FROM S WHERE SN ='王華C. SELECT SN , AGE, SEX FROM S WHERE AGE > (SELECT AGEWHERE SN='王華)D. S

4、ELECT SN , AGE , SEX FROM SWHERE AGE >王華.AGE答案:A9 .檢索選修課程 “C如學生中成績最高的學生的學號。正確的SELECT語句是A. SELECT S# FORM SCWHERE C#='C2' AND GRAD > =(SELECT GRADE FORM SCWHERE C#= 'C2')B. SELECT S# FORM SCWHERE C#= 'C2' AND GRADE IN(SELECT GRADE FORM SCWHERE C#= 'C2')C. SELECT

5、S# FORM SCWHERE C#= 'C2 ' AND GRADE NOT IN(SELECT GRADE FORM SCWHERE C#= 'C2')D. SELECT S# FORM SCWHERE C#= 'C2 ' AND GRADE >= ALL(SELECT GRADE FORM SCWHERE C#= 'C2')答案:D10 .檢索學生姓名及其所選修課程的課程號和成績。正確的 SELECT語句是A. SELECT S . SN, SC. C#, SC. GRADE FROM S WHERE S . S#=S

6、C. S#B. SELECT S . SN, SC. C#, SC. GRADE FROM SCWHERE S . S#= SC. GRADEC. SELECT S . SN, SC. C#, SC. GRADEFROM S JION SC ON S#=SC . S#D. SELECT S .FROM S 答案:CSN, SC. C#, SC. GRADEJOIN SC11 .檢索選修4門以上課程的學生總成績(不統(tǒng)計不及格的課程),并要求按總成績的降序排列出來。正確的 SELECT語句是()。A. SELECT S# , SUM(GRADE) FROM SCWHERE GRADE>=60

7、GROUP BY S#ORDER BY 2 DESCHAVING COUNT(*)>=4B . SELECT S# , SUM(GRADE)FROM SCWHERE GRADE>=60GROUP BY S#HAVING COUNT(*)>=4ORDER BY 2 DESCC. SELECT S# , SUM(GRADE)FROM SCWHERE GRADE>=60HAVING COUNT(*)>= 4GROUP BY S#ORDER BY 2 DESCD. SELECT S# , SUM(GRADE)FROM SCWHERE GRADE>=60ORDER B

8、Y 2 DESCGROUP BY S#HAVING COUNT(*)=4答案:B12 .假定學生關系是 S(S#, SNAME , SEX, AGE),課程關系是 C(C# , CNAME , TEACHER), 學生選課關系是 SC(S#, C#, GRADE)。要查找選修“COMPUTER課程的 女”學生姓名,將涉及到關系 。A. S B. SC, C C. S, SC D. S, C, SC答案:D13 .在數(shù)據(jù)庫的如下兩個表中,若雇員信息表的主關鍵字是雇員號,部門信息表中的主關鍵字是部門號。在下列所給的操作中,哪個不能執(zhí)行 。部門信息表雇員信息表部門號部門名的人雇員號雇員名部門號工資0

9、1業(yè)務部王軍001:張山02200002銷售部李建010王宏01120003服務部劉偉056馬林02100004財務部陳威101趙明041500A .從雇員信息表中刪除行(010'王宏01'1200)B.將行(102''趙明,01'1500)插入雇員信息表中C.將雇員信息表中,雇員 ='010勺工資改為1600元D.將雇員信息表中,雇員 ='10的部門號改為05'14.數(shù)據(jù)庫的兩個表同上,若雇員信息表的主關鍵字是雇員號,部門信息表的主關鍵字是部門號。在部門信息表中,哪一行可以被刪除 。A.部門號=0的行B.部門號='2&#

10、39;的行C.部門號='3'的行D.部門號='4'的行15.若用如下的 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)C. (NULL,曾華,男,'23') 答案:B16 .與HAVING 子句一起使用的子句是( A . GROUP BYB. ORDER BY答案:A17 . FOREIGN KEY

11、 約束是()約束。A.實體完整性 B.參照完整性 答案:BB. ('1031','曾華',NULL , NULL)D. ('1031', NULL ,'男',23)。C. WHERED. JOINC.用戶自定義完整性D.域完整性18 .視圖創(chuàng)建完成后,數(shù)據(jù)字典中存放的是A.查詢語句 B.查詢結果)。C.視圖的定義D.所引用的基本表的定義答案:C19 .查詢中需要統(tǒng)計元組的個數(shù)時,應使用()函數(shù)。A . SUM(列名) B. COUNT(列名) C. COUNT(*) 答案:C20 .查詢中需要統(tǒng)計某列中值的個數(shù)應使用()函數(shù)。A

12、. SUM(歹U名)B. COUNT(歹U名)C. COUNT(*)答案:BD. AVG(歹U名)D . AVG(歹U名)二、多項選擇題第1題到第4題基于這樣的3個表即學生表 S、課程表C和學生選課表 SC,它們的結構如 下:S(S#, SN , SEX, AGE, DEPT)C(C#, CN)SC(S#, C#, GRADE)其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE成績1 .查詢所有比 生華”年齡大的學生姓名、年齡和性別。正確的 SELECT語句是(AC )。A . SELECT SN, AGE, SEX WHERE A

13、GE>(SELECTB. SELECT SN, AGE, SEX WHERE AGE>ANY( SELECT AGEC. SELECT SN, AGE, SEX WHERE AGE>ALL( SELECT AGED SELECT SN, AGE, SEX WHERE AGE>SOMEFROM SAGE FROM S WHERE SN=' 王華')FROM SFROM S WHERE SN='王華')FROM SFROM S WHERE SN='王華')( SELECT AGEFROM S WHERE SN='王華&

14、#39;)FROM S2 .查詢選修了課程號為“C2的學生中成績最高的學生的學號,正確的 SELECT語句是(ABC )。SELECT S# FROM SC WHERE C#='C2' AND GRADE>=ALLB.CD( SELECT GRADESELECT S#SELECT S#SELECT S#FROM SCWHERE C#='C2')FROM SC WHERE C#='C2' AND GRADE IN( SELECT MAX(GRADE)FROM SC WHERE C#='C2')FROM SC WHERE C#=

15、'C2' AND GRADE=( SELECT MAX(GRADE)FROM SC WHERE C#='C2' )FROMSC WHERE C#='C2' AND GRADE>=ANY(SELECT GRADE FROM SC WHERE C#='C2')3 .查詢至少選修了兩門課程的學生的姓名,正確的 SELECT語句是(ACD )。A . SELECT S.SN FROM S JOIN SC ON S.S#=SC.S#GROUP BY S.S# HAVING COUNT(*)>=2B SELECT S.SN FRO

16、M SWHERE EXISTS( SELECT S# FROM SCGROUP BY S#HAVING COUNT(*)>2 )CSELECTS.SNFROM SJOINSCS1 ONS.S#=SC.S#JOINSCS2 ONS1.S#=S2.S#WHERE S1.C#!=S2.C#D SELECTS.SNFROMS WHERE S# IN( SELECT S# FROM SCGROUP BY S#HAVING COUNT(*)>2 )4 .查詢所有沒有被學生選過的課程的名稱,正確的 SELECT語句是(BD )。A . SELECT C.CN FROM C JOIN SC ON

17、SC.C#=C.C# WHERE C.C# IS NULLB . SELECT C.CN FROM C LEFT JOIN SC ON SC.C#=C.C# WHERE SC.C# IS NULLC . SELECT C.CN FROM SC LEFT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULLD . SELECT C.CN FROM SC RIGHT JOIN C ON SC.C#=C.C# WHERE SC.C# ISNULL三、填空題1 . SQL 是。答案:結構化查詢語言2 . SQL語言的數(shù)據(jù)定義功能包括 、和。答案:定義數(shù)據(jù)庫定義基本表定義視圖

18、定義索引3 .視圖是一個虛表,它是從 中導出的表。在數(shù)據(jù)庫中,只存放視圖的,不存放視圖的 。答案:一個或幾個基本表定義視圖對應的數(shù)據(jù)4 .設有如下關系表 R、S和T:以 R(BH , XM , XB , DWH)S(DWH , DWM)T(BH , XM , XB , DWH)實現(xiàn)R U T的SQL語句是 。實現(xiàn) DWH=100,(R)的SQL語句是 。實現(xiàn) nXM,XB (R)的SQL語句是 。實現(xiàn) Hxmqwh ( *8=女,0)的SQL語句是 。實現(xiàn)R ? S的SQL語句是 。實現(xiàn) IIXM,XB,DWM ( XB=男,(R ? S)的 SQL 語句是 。答案: SELECT * FRO

19、M 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 RJION S ON R.DWH = S.DWH SELECT R.XM , R.XB , S.DWM FROM RJOIN S ON R.DWH=S.DWHWHERE R.XB='男'5 .設有如下關系表 R:R(No, N

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

21、R(NO , NAME , CLASS) VALUES(30 ,'關際口', '95031') UPDATE R SET NAME='王華'WHERE NO = 10 UPDATE R SET CLASS = '95091 'WHERE CLASS = '95101 ' DELETE FROM R WHERE NO=20DELETE FROMR WHERE NAME LIKE'王 '四、簡述與應用題1 .試述SQL語言的特點。答:(1) 一體化。SQL語言集數(shù)據(jù)定義語言 DDL、數(shù)據(jù)操縱語言 DML

22、、數(shù)據(jù)控制語言 DCL 的功能于一體。(2)高度非過程化。用 SQL語言進行數(shù)據(jù)操作,只要提出做什么”,而無需指明 怎么做”,因此無需了解存取路徑,存取路徑的選擇以及sQL語句的操作過程由系統(tǒng)自動完成。(3)面向集合的操作方式。SQL語言采用集合操作方式,不僅操作對象、查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。(4)以同一種語法結構提供兩種使用方式。SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式;作為嵌入式語言,它能夠嵌入到高級語言程序中,供程序員設計程序時使用。(5)語言簡捷,易學易用。2 .試述sQL的定義

23、功能。答:SQL 語言使用 CREATE TABLE DROP TABLE語句刪除基本表;SQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。 語句建立基本表, ALTER TABLE 語句修改基本表定義,使用 CREATE INDEX 語句建立索弓I, DROP INDEX 語句刪除索引; 使用 CREATE VIEW 語句建立視圖,DROP VIEW語句刪除視圖。3 .敘述使用SQL語言實現(xiàn)各種關系運算的方法。答:SQL語言沒有提供關系的笛卡爾積、交和差運算。其他關系運算對應的 SQL語句格式是:RUS SELECT * FROM RUNIONSELECT* FROM S選擇 SELECT

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

25、ROM AWHERE WQTY <= 100 OR CITY = 長沙(2)找出供應書包的商店名。SELECT A.ANAME FROM AJOIN AB ON A.A# = AB.A#JION B ON AB.B#=B.B#WHERE B.BNAME='書包'(3)找出至少供應代號為 256的商店所供應的全部商品的商店名和所在城市。SELECT A.ANAME , A.CITY FROM A ,JOIN AB ON A.A# = AB.A#WHERE AB.B# IN(SELECT AB.B# ;FROM ABWHERE A#= "256”)AA#ANAMEW

26、QTYCITY101:百貨商店15長沙204:k安商場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)計

27、其出版圖書總數(shù)。刪除索引ITS。解:(1) CREATE INDEX ITS ON TS(BNO)(2) SELECT PUB , COUNT(BNO) FROM TSGROUP BY PUB(3) DROP INDEX ITS5.己知三個關系 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_TASSELECT R.A , B, C, S.D, E,

28、 F FROM RJOIN S ON R.A = S.AJOIN T S.D=T.D(2) SELECT A VG(C) , AVG(E)FROM R_S_T GROUP BY A6 .設有關系R (A, B)和S (A, C), A為相同屬性。試用SQL語句實現(xiàn):(1)查詢屬性C>50時,R中相關聯(lián)的屬性 B之值。(2)當屬性C=40時,將R中與之相關連的屬性 B值修改為b4。解:(1) SELECT BFROM R JOIN S ON R.A = S.AWHERE C >50(2) UPDATE RSET B= 'b4'WHERE A IN(SELECT AFR

29、OM SWHERE C = 40)7 .已知R(A,B,C)和S(C,D,E)兩個關系,如下圖所示。執(zhí)行如下SQL語句:(1) CREATE VIEW H(A , BC, C, D, E)ASSELECT A , B, R, C , D , EFROM R JOIN S ON R . C=S. C;(2) SELECT B , D, EFROM HWHERE C = ' C2'試給出:視圖H;(2)對視圖H的查詢結果。解:本題的結果如圖所示。ABCDEa1b1c1d1e1a2b2c2d2e2a3b3c3d3e3視圖H8. 已知關系R如圖所示。BDEb2d2e2對H的查詢結果試用

30、SQL語句實現(xiàn)ABC97b18497b29297b39898b17298b28498b39599b18899b294(1)按屬性A分組,求出每組中在屬性 C上的最大值和最小值,且將它們置于視圖(2)在視圖RVE中查詢屬性 A= ' 9審記錄。解:(1) CREATE VIEW RVE(A , CMAX , CMIN)AS SELECT A , MAX(C) , MIN(C) FROMRGROUP BY A ;(2) SELECT *FROM RVEWHERE A= ' 98 ' 9.已知學生表 S和學生選課表SC。其關系模式如下:S(SNo, SN, SD, PROV)

31、SC(SNO , CN , GR)其中,SNO為學號,SN為姓名,SD為系名,PROV為省區(qū),CN為課程名, 數(shù)。試用SQL語言實現(xiàn)下列操作:(1)查詢 蓿息系”的學生來自哪些省區(qū)。(2)按分數(shù)降序排序,輸出 英語系”學生選修了 計算機”課程的學生的姓名和分數(shù)。 解:(1) SELECT DISTINCT PROVFROM SWHERE SD=彳言息系'(2) SELECT SN , GRFROM S JOIN SC ON S.SNO = SC.SNOWHERE SD='英語系'AND CN='計算機RVE 中。GR為分ORDER BY GR DESC10 .設

32、有學生表 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 JOIN SC ON S . SNO=SC . SNO

33、ORDER BY CNO(2) SELECT SN CN GFROM V_SSCGROUP BY SNOHAVING A VG(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為工

34、程所在城市,主 關鍵字為JN。SPJB(SN, PN, JN, QTY)其中,SPJ表示供應關系,SN是為指定工程提供零件的供應商代號, 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 PBWHERE WEIGHT=(SELECT

35、 MIN(WEIGHT) FROM PB)(4)取出為工程J1提供零件的供應商代號;SELECT SN FROM SPJB WHERE JN = J1 '(5)取出為工程J1提供零件P1的供應商代號;SELECT SN FROM SPJB WHERE JN= 'Jl' AND PN = 'Pl'(6)取出由供應商S1提供零件的工程名稱;SELECT JB.JNAMEFROM JB JOIN SPJB ON JB.JN = SPJB.JNWHERE SPJB.SN= 'S1'(7)取出供應商S1提供的零件的顏色;SELECT DISTINC

36、T PB.COLORFROM PB JOIN SPJB ON PB.PN = SPJB.PNWHERE SPJB . SN='S1'(8)取出為工程J1或J2提供零件的供應商代號;SELECT DISTINCT SNFROM SPJBWHERE JN= 'J1' OR JN= 'J2'(9)取出為工程J1提供紅色零件的供應商代號;SELECT DISTINCT SPJB.SNFROM SPJB JOIN PB ON SPJB.PN=PB.PNWHERE SPJB.JN= 'J1'AND PB.COLOR='紅'(1

37、0)取出為所在城市為上海的工程提供零件的供應商代號;SELECT DISTINCT SNFROM SPJB JOIN JB ON SPJB.JN=JB.JNWHERE CITY='上海(11)取出為所在城市為上海或北京的工程提供紅色零件的供應商代號;SELECT SNFROM SPJB JOIN PB ON SPJB.PN=PB.PN JOIN JB ON SPJB.JN=JB.JNWHERE COLOR= 紅AND CITY IN ( 上海北京)或:SELECT DISTINCT SN From SPJWHERE JN IN (SELECT JN FROM JBWHERE CITY

38、IN(' 上海','北京')AND PN IN (SELECT PN FROM PBWHERE COLOR=' 紅')(12)取出供應商與工程所在城市相同的供應商提供的零件代號;SELECT DISTINCT SPJB.PNFROM SPJBJOIN SB ON SPJB.SN=SB.SNJOIN JB ON SPJB.JN=JB.JNWHERE SB.CITY=JB.CITY(13)取出上海的供應商提供給上海的任一工程的零件的代號;SELECT DISTINCT PNFROM SPJBJOIN SB ON SPJB.SN=SB.SNJOIN J

39、B ON SPJB.JN=JB.JNWHERE SB.CITY='上海AND JB.CITY='上海'(14)取出至少由一個和工程不在同一城市的供應商提供零件的工程代號;SELECT DISTINCT JN FROM SPJWHERE EXISTS (SELECT * FROM SBWHERE EXISTS(SELECT * FROM JBWHERE SB.SN=SPJ.SN AND JB.JN=SPJ.JN AND SB.CITY<>JB.CITY)(15)取出上海供應商不提供任何零件的工程的代號;SELECT DISTINCT JN FROM SPJBW

40、HERE JN NOT IN(SELECT DISTINCT SPJB.JN FROM SB JOIN SPJB ON SPJB.SN=SB.SNWHERE SB.CITY=' 上海)(16)取出這樣一些供應商代號,它們能夠提供至少一種由紅色零件的供應商提供的零件;SELECT DISTINCT SN FROM SPJBWHERE PN IN(SELECT SPJB.PN FROM SPJBJOIN SB ON SB.SN=SPJB.SNJOIN PB ON PB.PN=SPJB.PNWHERE PB.COLOR =紅')(17)取出由供應商S1提供零件的工程的代號;SELEC

41、T DISTINCT JNFROM SPJB WHERE SN= S1'(18)取出所有這樣的一些CITY , CITY >二元組,使得第1個城市的供應商為第 2個 城市的工程提供零件;SELECT JNFROM (SELECT DISTINCT PN, JN FROM SPJWHERE PN in (select distinct PNfrom SPJ where SN='s1')GROUP BY JNHAVING count(*)=(select count(*) from (SELECT DISTINCT PN FROM SPJWHERE SN='s

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

43、索兩個 CITY值相同的三元組。SELECT DISTINCT SB.CITY, SPJB.PN, JB.CITY FROM SPJBJOIN SB ON SPJB.SN=SB.SNJOIN JB ON SPJB.JN=JB.JNWHERE SB.CITY<>JB.CITY12 .以下面的數(shù)據(jù)庫為例,用SQL完成以下檢索。關系模式如下:倉庫(倉庫號,城市,面積)WAREHOUSE (WMNO , CITY , SIZE)職工(倉庫號,職工號,工資) -EMPLOYEE (WHNO , ENO, SALARY )訂購單(職工號,供應商號,訂購單號,訂購日期) -ORDER (SNO,

44、 SNO, ONO,DATE )供應商(供應商號,供應商名,地址)-SUPPLIER (SNO, SNAME , ADDR )(1)檢索在北京的供應商的名稱。SELECT SNAME FROM SUPPLIER WHERE ADDR=北京(2)檢索發(fā)給供應商S6的訂購單號。SELECT ONO FROM ORDER WHERESNO= ' S6'(3)檢索出職工E6發(fā)給供應商S6的訂購單號。SELECT ONO FROM ORDE R WHERE ENO=' E6' AND SNO= ' S6'(4)檢索出向供應商S3發(fā)過訂購單的職工的職工號和倉

45、庫號。SELECT ENO , WHNO FROM EMPLOYEEWHERE ENO IN(SELECT ENOFROM ORDERWHERE SNO= ' S3)或:SELECT ENO , WHNO FROM EMPLOYEE JOIN ORDER ONMPLOYEE.ENO=ORDER.ENOWHERE ORDER.SNO = S3'(5)檢索出目前與S3供應商沒有聯(lián)系的職工信息。SELECT ENO , WHNOFROM EMPLOYEEWHERE ENO NOT IN(SELECT ENO FROM ORDER WHERESNO= ' S3)(6)檢索出目前

46、沒有任何訂購單的供應商信息。SELECT * FROM SUPPLIER WHERE SNO NOT IN (SELECT SNO FROM ORDER ) (7)檢索出和職工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= '

47、E6') (8)檢索出目前和華通電子公司有業(yè)務聯(lián)系的每個職工的工資。SELECT ENO , SALARY FROM EMPLOYEEWHERE ENO IN(SELECT ENO FROM ORDER WHERE SNO IN(SELECT SNO FROM SUPPLIER WHEREADDR=華通電子公司')(9)檢索出與工資在1220元以下的職工沒有聯(lián)系的供應商的名稱。 SELECT SNAME FROM SUPPLIER WHERE SNO NOT IN(SELECT SNO FROM ORDER WHERE ENO IN( SELECT ENO FROM EMPLO

48、YEE WHERE SALARY<1220 ) (10)檢索出向S4供應商發(fā)出訂購單的倉庫所在的城市。SELECTCITY FROMWAREHOUSEWHEREWHNO IN(SELECT WHNO FROM EMPLOYEE WHERE ENOIN(SELECTENOFROM ORDER WHERE SNO= ' S4')或: SELECT CITY FROM WAREHOUSE JOIN EMPLOYEE ON W AREHOUSE.WHNO=EMPLOYEE.WHNO JOIN ORDER ON EMPLOYEE.ENO=ORDER.ENO WHERE ORDER.

49、SNO = S4'(11)檢索出在上海工作并且向 S6供應商發(fā)出了訂購單的職工號。SELECT ENO FROM EMPLOYEEWHERE WHNO IN(SELECT WHNO FROM WAREHOUSE WHERE CITY='上海) AND (ENO IN SELECT ENO FROM ORDER WHERESNO= 'S6')或:SELECT ENO FROM EMPLOYEEJOIN W AREHOUSE ON EMPLOYEE.WHNO=WREHOUSE.WHNOJOIN ORDER ON EMPLOYEE.ENO=ORDER.ENOWHERE

50、 WREHOUSE.CITY =上海'AND ORDER.SNO= ' S6'(12)檢索出在廣州工作并且只包 S6供應商發(fā)出了訂購單的職工號。SELECT ENO FROM EMPLOYEEWHERE WHNO IN (SELECT WHNO FROM WAREHOUSE WHERECITY=廣州')AND ENO IN (SELECT ENO FROM ORDER WHERE SNO= ' S6') AND (NOT EXISTS (SELECT * FROM ORDERWHERE SNO<>' S6' AND E

51、NO=EMPLOYEE.ENO)(13)檢索出由工資多于1230元的職工向北京的供應商發(fā)出的訂購單號。SELECT ONO FROM ORDERWHERE ENO IN (SELECT ENO FROM SALARY>1230)AND SNO IN (SELECT SNO FROM SUPPLIER 或:SELECT ONO FROM ORDERJOIN EMPLOYEE ON ORDER.ENO= EMPLOYEE.ENOJOIN SUPPLIER ON ORDER.SNO= SUPPLIER.SNOWHERE EMPLOYEE.SALARY>1230AND SUPPLIER. ADDR='北京(14)檢索出倉庫的個數(shù)。SELECT COUNT(*) FROM WAREHOUSE(15)檢索出有最大面積的倉庫信息。SELECT *FROM WAREHOUSE OUTERWHERE OUTER.SIZE=(SELECT

溫馨提示

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

評論

0/150

提交評論