版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 3 章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言 SQL1.2.3.4.5.試述 SQL 語言的特點(diǎn)。試述 SQL 的定義功能。 用 SQL 語句建立第 2 章習(xí)題 5 中的四個(gè)表。 針對上題中建立的四個(gè)表試用 SQL 語言完成第 2 章習(xí)題 5 中的查詢。 針對習(xí)題 3 中的四個(gè)表試用 SQL 語言完成以下各項(xiàng)操作:找出所有供應(yīng)商的姓名和所在城市。 找出所有零件的名稱、顏色、重量。 找出使用供應(yīng)商 S1 所供應(yīng)零件的工程號碼。 找出工程項(xiàng)目 J2 使用的各種零件的名稱及其數(shù)量。 找出上海廠商供應(yīng)的所有零件號碼。 找出使用上海產(chǎn)的零件的工程名稱。 找出沒有使用天津產(chǎn)的零件的工程號碼。 把全部紅色零件的顏色改成藍(lán)
2、色。由 S5 供給 J4 的零件 P6 改為由 S3 供應(yīng),請作必要的修改。(1)(2)(3)(4)(5)(6)(7)(8)(9)6.7.8.9.10. 請為三建工程項(xiàng)目建立一個(gè)供應(yīng)情況的視圖,包括供應(yīng)商代碼(什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么? 試述視圖的優(yōu)點(diǎn)。所有的視圖是否都可以更新?為什么? 哪類視圖是可以更新的,哪類視圖是不可更新的? 各舉一例說明。SNO )、零件代碼( PNO )、供應(yīng)數(shù)量( QTY )。針對該視圖完成下列查詢:(1) 找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。11.(2) 找出供應(yīng)商 S1 的供應(yīng)情況。針對習(xí)題 3 建立的表,用 SQL 語言完成以
3、下各項(xiàng)操作:(1) 把對表 S 的 INSERT 權(quán)限授予用戶張勇,并允許他再將此權(quán)限授予其他用戶。12.13.14.15. SQL 的中文全稱是 。16. SQL 語言除了具有數(shù)據(jù)查詢和數(shù)據(jù)操縱功能之外,還具有_能,它是一個(gè)綜合性的功能強(qiáng)大的語言。17. 在關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言 SQL 中,實(shí)現(xiàn)數(shù)據(jù)檢索的語句命令是18. 在 SQL 語言的結(jié)構(gòu)中, 有對應(yīng)的物理存儲, 而 _儲。(2) 把查詢 SPJ 表和修改 QTY 屬性的權(quán)限授給用戶李天明。在嵌入式 SQL 中是如何區(qū)分 SQL 語句和主語言語句的?在嵌入式 SQL 中是如何解決數(shù)據(jù)庫工作單元與源程序工作單元之間通信的?的功沒有對應(yīng)的物理
4、存在嵌入式 SQL 中是如何協(xié)調(diào) SQL 語言的集合處理方式和主語言的單記錄處理方式的?19. 關(guān)系 R ( A , B , C )和 S ( A , D , E , F ), R 和 S 有相同屬性 A , 若將關(guān)系代數(shù)表達(dá)式:n R.A,R.B,S.D,S.F ( R S )用SQL語言的查詢語句表示,則 為: SELECT R.A,R.B,S.D,S.F FROM R,S WHERE。20. 視圖是從 中導(dǎo)出的表,數(shù)據(jù)庫中實(shí)際存放的是視圖的 21. 關(guān)系數(shù)據(jù)操作語言( DML )的特點(diǎn)是:操作對象與結(jié)果均為關(guān)系、操作的 語言一體化并且是建立在數(shù)學(xué)理論基礎(chǔ)之上。22. 設(shè)有如下關(guān)系表 R
5、、 S 、 T :R ( BH , XM , XB , DWH) S ( DWH, DWM) T ( BH , XM , XB , DWH) (1) 實(shí)現(xiàn)R U T的SQL語句是。2)實(shí)現(xiàn)3)實(shí)現(xiàn)4)實(shí)現(xiàn)5)實(shí)現(xiàn)6)實(shí)現(xiàn)(T DWH= ' 100 ' ? 的 SQL 語句是。n XM,XB ?的SQL語句是。n XM,DWH ( (T XB='女'?) 的 SQL 語句是。R s S的SQL語句是。n XM,XB,DWH ( t XB='男'(R s S) 的 SQL 語句是_23. 設(shè)有如下關(guān)系表 R : R ( NO,NAME,SEX,AGE
6、,CLAS)S , 主碼是 NO(1)(2)(3)(4)(5)插入一個(gè)記錄( 25 ,“李明”,“男”, 21 ,“ 95031 ”);插入“ 95031 ”班學(xué)號為 30 ,姓名為“鄭和”的學(xué)生記錄; _ 將學(xué)號為 10 的學(xué)生姓名改為“王華”; 。將所有“ 95101 ”班號改為“ 95091 刪除學(xué)號為 20 的學(xué)生記錄; 刪除姓“王”的學(xué)生記錄; (6) 答案1. (1)綜合統(tǒng)一。 SQL 語言集數(shù)據(jù)定義語言 DDL 、數(shù)據(jù)操縱語言 DML 、數(shù)據(jù)控制語言 DCL 的功能于一體。(2) 高度非過程化。用 SQL 語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無須指明“怎 么做”,因此無需了解
7、存取路徑,存取路徑的選擇以及 SQL 語句的操作過程由系統(tǒng)自動完成。(3) 面向集合的操作方式。 SQL 語言采用集合操作方式,不僅操作對象、查找結(jié)果可 以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。(4) 以同一種語法結(jié)構(gòu)提供兩種使用方式。 SQL 語言既是自含式語言,又是嵌入式語 言。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,也能夠嵌入到高級語言程序 中,供程序員設(shè)計(jì)程序時(shí)使用。(5) 語言簡捷,易學(xué)易用。2. SQL 的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。 SQL 語言使用 CREATE TABLE 語句建立基本表,ALTERTABLE語句修改基
8、本表定義, DROPTABLE語句刪除基本表;使用 CREATE INDEX®句建立索弓I, DROP INDEX語句刪除索弓I;使用 CREATE VIEW命令建立視 圖,DROP VIEW語句刪除視圖。3. 對于 S 表: S( SNO , SNAME, STATUS , CITY) ;建 S 表 CREATE TABLE S (SNO CHAR(3) , SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10) ;P(PNO , PNAME, COLOR, WEIGHT) ;建 P 表 CREATE TABLE P (PNO CHAR(3),
9、PNAME CHAR(10,) COLOR CHAR(4), WEIGHT INT) ;J(JNO ,JNAME ,CITY) ;建 J 表 CREATETABLEJ (JNO CHAR(3) ,JNAMECHAR(10) , CITY CHAR(10) ;SPJ(SNO, PNO , JNO , QTY) ;建 SPJ 表 CREATETABLESPJ(SNOCHAR(3) , PNO CHAR(3) ,JNO CHAR(3)求供應(yīng)工程 J1, QTY INT) 。零件的供應(yīng)商號碼 SNO ; SELECTSNOFROMSPJ WHERJENO= J1求供應(yīng)工程 J1 P1 ' ;3
10、)求供應(yīng)工程 J1 零件為紅色的供應(yīng)商號碼 SNO ;SELECTSNO/* 這是嵌套查詢 */ 找出紅色的零件的零件號碼 PNO */ (SELECT ;或 SELECT SNO FROM SP,J P /*(2)J1 ' AND PNO=零件 P1 的供應(yīng)商號碼 SNO ; SELECTSNOFROMSPJ WHERJENO=FROM SPJ WHERE JNO= J1 ' AND PNO IN /*PNO FROM P /*從 P 表中找 */ WHERE COLOR紅')4. (1)這是兩表連接查詢 */ WHERJENO= J1 ' /* 這是復(fù)合條件
11、連接查詢 */ ANDSPJ.PNO=P.PNO AND COLOR= 紅' ;(4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO ;* 解析:讀者可以對比第 2 章習(xí)題 5 中用 ALPHA 語言來完成該查詢的解答。如果大家 理解了有關(guān)該題的解析說明,那么本題的解答可以看成是把關(guān)系演算用 SQL 來表示的過程。 GET W (J.JNO): ?SPJX( SPJX .JNO=J.JNO ? ?SX ( SX.SNO=SPJX .SNO ? SX .CITY=' 天津 ' ? ?PX(PX .PNO=SPJX .PNO ? PX .COLOR=' 紅
12、9; ) 這里的第一種解法是使用多重嵌套查 詢,第二種方法的子查詢是一個(gè)多表連接。注意:從 J 表入手,以包含那些尚未使用任何零 件的工程號。 SELECTJNOFROMJ WHERNEOTEXISTS(SELECT* FROMSPJWHERSEPJ.JNO=J.JNO AND SNO IN /* 天津供應(yīng)商的 SNO*/ (SELECT SNO FROM S WHERE CITY= 天津' ) AND PNO IN /* 紅色零件的 PNO*/ (SELECTPNOFROMP WHERCEOLOR= 紅' ) ;或 SELECTJNOFROM J WHERE NOT EXIS
13、TS (SELECT * FROM SPJ, S, P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SP J. PNO=P.PNO AND S.CITY 天津'AND P. COLOR='紅');/ 刪除: 本例中父 查詢和子查詢均引用了 Student 表,可以像自身連接那樣用別名將父查詢中的 Student 表 與子查詢中的 Student 表區(qū)分開: /(5)求至少用了供應(yīng)商 S1 所供應(yīng)的全部零件的工程號 JNO ( 類似于 P113 例 44) 。* 解析:本查詢的解析可以參考第二章第 5 題,用 ALPHA 語言的邏輯
14、蘊(yùn)函來表達(dá)。 上 述查詢可以抽象為 : 要求這樣的工程 x ,使 (?y) p ? q 為真。即:對于所有的零件 y , 滿足邏輯蘊(yùn)函 p ? q : P 表示謂詞:“供應(yīng)商 S1 供應(yīng)了零件 y ” q 表示謂詞:“工程 x 選用了零件 y ” 即只要“供應(yīng)商 S1 供應(yīng)了零件 y ”為真,則“工程 x 選用了零件 y ” 為真。邏輯蘊(yùn)函可以轉(zhuǎn)換為等價(jià)形式:(?y) P ? q 三? (?y (?(p ? q ) 三? (?y (?(? pV q)三? ?y(p A ?q)它所表達(dá)的語義為:不存在這樣的零件 y,供應(yīng)商S1供應(yīng)了 y , 而工程 x 沒有選用 y 。用 SQL 語言表示如下:
15、 SELECTDISTINCTJNOFROMSPJSPJZWHERE NOT EXISTS /* 這是一個(gè)相關(guān)子查詢 */ (SELECT * /*父查詢和子查詢均引用了 SPJ 表 */找出所有供應(yīng)商的姓名和所在城市。 SELECT SNAME, CITY FROM S; 找出所有零件的名稱、顏色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P; 找出使用供應(yīng)商 S1 所供應(yīng)零件的工程號碼。 SELECT JNO FROM SPJ WHERE SNO=FROM SPJ SPJX /*用別名將父查詢與子查詢中的 SPJ 表區(qū)分開 */ WHERE SNO='
16、;S1' ANNDOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.PNO=SPJX.PNO AND SPJY.JNO=SPJZ.JNO AND SPJY.SNO= ' S1 ' )。5. (1)(2)(3) S1 ' ;找出工程項(xiàng)目 J2 使用的各種零件的名稱及其數(shù)量。 SELECT P.PNAME, SPJ.QTYFROM P, SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'(5) 找出上海廠商供應(yīng)的所有零件號碼。 SELECT DISTINCT PNO FROSMPJ
17、 WHERE SNINO(SELECT SNO FROM S WHERE CITY上 海');(6) 找出使用上海產(chǎn)的零件的工程名稱。 SELECTJNAMEFROMJ, SPJ, S WHERJE. JNO=SPJ. JNO AND SPJ. SNO=S.SNO AND S.CITY='上海' 或 SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ, S WHERE SPJ. SNO=S.SNO AND S.CITY上海 ');(7) 找出沒有使用天津產(chǎn)的零件的工程號碼。 SELECT JNO FROM
18、J WHERE NOT EXISTS (SELECT* FROMSPJ WHERESPJ.JNO=J.JNOANDSNOIN (SELECTSNOFROMS WHERECITY= 天 津' ) ;或 SELECTJNO FROMJ WHERENOT EXISTS (SELECT * FROMSPJ, S WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=天津');(8) 把全部紅色零件的顏色改成藍(lán)色。UP DATE P SET COLOR藍(lán)'WHERE COLOR=a(4)(9) 由 S5 供給 J4 的零件 P6 改為由
19、 S3 供應(yīng),請作必要的修改。 UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6'(10) 從供應(yīng)商關(guān)系中刪除 S2 的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。 DELETEFROM SPJ WHERE SNO='S2' DELETE FROM S WHERE SNO='S2解析:注意刪除順序,應(yīng)該 先從 SPJ 表中刪除供應(yīng)商 S2 所供應(yīng)零件的記錄,然后從從 S 表中刪除 S2 。(11) 請將 (S2 , J6 , P4 ,
20、 200) 插入供應(yīng)情況關(guān)系。 INSERTINTOSPJ(SNO,JNO, PNO, QTY) /*INTO 子句中指明列名 */ VALUES (S2 , J6 , P4 , 200); /* 插入的屬性 值與指明列要對應(yīng) */ 或 INSERT INTO SPJ /*INTO 子句中沒有指明列名 */ VALUES (S2,P4 , J6 , 200); /* 插入的記錄在每個(gè)屬性列上有值 */ /* 并且屬性列要和表定義中的 次序?qū)?yīng) */用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。 視圖能夠簡化用戶的操作。 視圖使用戶能以多種角度看待同一數(shù)據(jù)。視圖對重構(gòu)數(shù)據(jù)庫提供了一定程
21、度的邏輯獨(dú)立性。 視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。6. 基本表是本身獨(dú)立存在的表, 在 SQL 中一個(gè)關(guān)系就對應(yīng)一個(gè)表。 視圖是從一個(gè)或幾個(gè)基 本表導(dǎo)出的表。視圖本身不獨(dú)立存儲在數(shù)據(jù)庫中,是一個(gè)虛表。即數(shù)據(jù)庫中只存放視圖的定 義而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。視圖在概念上與基本 表等同,7. (1)(2)(3)(4)1 。若視圖的屬性 中的 S_G 視圖。8. 不是。視圖是不實(shí)際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更 新。因?yàn)橛行┮晥D的更新不能唯一地有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所 有的視圖都是可更新的。如概論 3.5.1 中的視
22、圖 S_G (學(xué)生的學(xué)號及他的平均成績) CREATVIEWS_G(Sno , Gavg) ASSELECTSno , AVG(Grade) /* 設(shè) SC 表中“成績”列 Grade 為數(shù)字型*/ FROM SC GROUP BY Snq要修改平均成績,必須修改各科成績,而我們無法知 道哪些課程成績的變化導(dǎo)致了平均成績的變化。9. 基本表的行列子集視圖一般是可更新的。如概論 3.5.3 中的例 來自集函數(shù)、表達(dá)式,則該視圖肯定是不可以更新的。如概論 3.5.310. 建視圖:SELECTJNOFROMCREATEVIEWV_SPJASSELECTSNO,PNO, QTYFROMSPJ WHE
23、RJENO=J WHERE JNAME=三建');對該視圖查詢:(1) 找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量 : SELECT PNO, QTY FROM V_SPJ;(2) 找出供應(yīng)商 S1 的供應(yīng)情況 : SELECT PNO, QTY /* S1 供應(yīng)三建工程的零件號和對應(yīng)的數(shù)量 */ FROM V_SPJ WHERE SNO='S1。'11. (1) 把對表 S 的 INSERT 權(quán)限授予用戶張勇,并允許他再將此權(quán)限授予其他用戶 :GRANT INSERT ON TABLE S T張勇 WITH GRANT OPTION;(2) 把查詢 SPJ 表和修改
24、QTY 屬性的權(quán)限授給用戶李天明 :GRANT SELECT, UP DATE(QTY) ON TABLE SPJ TO天明。12. 在SQL語句前加上前綴EXECSQL。SQL語句的結(jié)束標(biāo)志則隨主語言的不同而不同。例 如在PL/1和C中以分號(;)結(jié)束,在 COBOL中以END-EXEC結(jié)束。13. 數(shù)據(jù)庫工作單元與源程序工作單元之間的通信主要包括:(1) SQL通信區(qū)SQLCA,用來向主語言傳遞 SQL語句的執(zhí)行狀態(tài)信息,使主語言能 夠根據(jù)此信息控制程序流程。(2) 主變量( Host Variable ), 1)用來實(shí)現(xiàn)主語言向 SQL 語句提供參數(shù)。 2)將 SQL 語句查詢數(shù)據(jù)庫的結(jié)果交主語言進(jìn)一步處理。( 3)游標(biāo)( Cursor ),解決集合性操作語言與過程性操作語言的不匹配通過游標(biāo)逐一獲 取記錄,并賦給主變量,交由主語言進(jìn)一步處理。 (詳細(xì)解釋參見概論 3.7.2)14. 用游標(biāo)來協(xié)調(diào)這兩種不同的處理方式。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐館食品安全賠償協(xié)議書范文
- 獨(dú)立撫養(yǎng)權(quán)協(xié)議書范文范本
- 一場公平的離婚協(xié)議書范文范本
- 二手客運(yùn)車買賣合同協(xié)議書范文
- 一次性工資結(jié)清協(xié)議書范文模板
- 高等中醫(yī)藥院校非醫(yī)藥專業(yè)教育發(fā)展過程分析
- 2020年上海中考英語真題分類匯編-專題-閱讀理解-(教師版)
- 第五章-墻體構(gòu)造
- 中學(xué)數(shù)學(xué)課件教學(xué)
- 節(jié)約用水國旗下講話稿(29篇)
- 廣東省揭陽市榕城區(qū)2023-2024學(xué)年八年級上學(xué)期期中考試地理試題
- 廣東省信宜市2023-2024學(xué)年高二上學(xué)期期中考試歷史試題
- 《田螺姑娘》兒童故事ppt課件(圖文演講)
- 更改民族申請表 2
- 錢穆:中國思想通俗講話
- 金融業(yè)的數(shù)據(jù)隱私保護(hù)與合規(guī)問題分析
- 巧借數(shù)學(xué)課堂實(shí)施情智教學(xué)
- 銷售應(yīng)急預(yù)案
- 設(shè)備到貨現(xiàn)場驗(yàn)收單
- 2023年新聞記者資格證及新聞寫作相關(guān)知識考試題庫(附含答案共400題)
- 部編版七年級上《論語十二章》理解性默寫訓(xùn)練及答案
評論
0/150
提交評論