【文章內(nèi)容簡(jiǎn)介】
D. SAGE=20 and CNAME=’ ACCESS’ 12. 設(shè)關(guān)系數(shù)據(jù)庫(kù)中一個(gè)表 S 的結(jié)構(gòu)為 S( SN, CN, grade),其中 SN 為學(xué)生名, CN 為課程名,二者均為字符型; grade 為成績(jī),數(shù)值型,取值范圍 0- 100。若要把“張二的化學(xué)成績(jī) 80 分”插入 S 中,則可用( )。 A. ADD INTO S VALUES(’張二’,’化學(xué)’,’ 80’) B. INSERT INTO S VALUES(’張二’,’化學(xué)’,’ 80’) C. ADD INTO S VALUES(’張二’,’化學(xué)’, 80) D. INSERT INTO S VALUES(’張二’,’化學(xué)’, 80) 13. 設(shè)關(guān)系數(shù)據(jù)庫(kù)中一個(gè)表 S 的結(jié)構(gòu)為: S( SN, CN, grade),其中 SN 為學(xué)生名, CN 為課程名,二者均為字符型; grade 為成績(jī),數(shù)值型,取值范圍 0- 100。若要更正王二的化學(xué)成績(jī)?yōu)?85 分,則可用( ) 。 A. UPDATE S SET grade= 85 WHERE SN=’王二’ AND CN=’化學(xué)’ B. UPDATE S SET grade=’ 85’ WHERE SN=’王二’ AND CN=’化學(xué)’ C. UPDATE grade= 85 WHERE SN=’王二’ AND CN=’化學(xué)’ D. UPDATE grade=’ 85’ WHERE SN=’王二’ AND CN=’化學(xué)’ 14. 在 SQL 語(yǔ)言中,子查詢是( ) 。 A. 返回單表中數(shù)據(jù)子集的查詢 語(yǔ)言 B. 選取多表中字段子集的查詢語(yǔ)句 C. 選取單表中字段子集的查詢語(yǔ)句 D. 嵌入到另一個(gè)查詢語(yǔ)句之中的查詢語(yǔ)句 15. SQL 是一種( )語(yǔ)言。 A. 高級(jí)算法 B. 人工智能 C. 關(guān)系數(shù)據(jù)庫(kù) D. 函數(shù)型 16. 有關(guān)系 S( S#, SNAME, SEX), C( C#, CNAME), SC( S#, C#, GRADE)。其中 S#是學(xué)生號(hào), SNAME 是學(xué)生姓名,SEX 是性別, C#是課程號(hào), CNAME 是課程名稱。要查詢選修“數(shù)據(jù)庫(kù)”課的全體男生姓名的 SQL 語(yǔ)句是 SELECT SNAME FROM S,C, SC WHERE 子句。這里的 WHERE 子句的內(nèi)容是( )。 = and = and SEX=’男’ and CNAME=’數(shù)據(jù)庫(kù)’ = and = and SEX in’男’ and CNAME in’數(shù)據(jù)庫(kù)’ ’男’ and CNAME ’ 數(shù)據(jù)庫(kù)’ =’男’ and CNAME=’ 數(shù)據(jù)庫(kù)’ 17. 若用如下的 SQL 語(yǔ)句 創(chuàng)建了一個(gè)表 SC: CREATE TABLE SC ( S CHAR( 6) NOT NULL, C CHAR( 3) NOT NULL, SCORE INTEGER, NOTE CHAR( 20));向 SC表插入如下行時(shí),( )行可以被插入 。 A.(’ 202209’,’ 111’, 60,必修) B.(’ 202223’,’ 101’, NULL, NULL) C.( NULL,’ 103’, 80,’選修’) D.(’ 202232’, NULL, 86,’ ’) 18. 假設(shè)學(xué)生關(guān)系 S( S#, SNAME, SEX),課程關(guān)系 C( C#,CNAME),學(xué)生選課關(guān)系 SC( S#, C#, GRADE)。要查詢選修“ Computer”課的男生姓名,將涉及到關(guān)系( )。 A. S B. S, SC C. C, SC D. S, C, SC 選擇題答案: (1) B (2) A (3) C (4) C (5) B (6) A (7) D (8) C (9) C (10) B (11) A (12) D (13) A (14) D (15) C (16) A (17) B (18) D 二、簡(jiǎn)答題 1. 試述 SQL 語(yǔ)言的特點(diǎn)。 答: ( 1)綜合統(tǒng)一。 SQL 語(yǔ)言集數(shù)據(jù)定義語(yǔ)言 DDL、數(shù)據(jù)操縱語(yǔ)言 DML、數(shù)據(jù)控制語(yǔ)言 DCL 的功能于一體。 ( 2)高度非過(guò)程化。用 SQL 語(yǔ)言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無(wú)須指明“怎么做”,因此無(wú)需了解存取路徑,存取路徑的選擇以及 SQL 語(yǔ)句的操作過(guò)程由系統(tǒng)自動(dòng)完成。 ( 3)面向集合的操作方式。 SQL 語(yǔ)言采用集合操作方式,不僅操作對(duì)象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對(duì)象也可以是元組的集合。 ( 4)以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式。 SQL 語(yǔ)言既是自含式語(yǔ)言,又是嵌入式語(yǔ)言。作為自含式語(yǔ)言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,也能夠嵌入到高級(jí)語(yǔ)言程序中,供程序員設(shè)計(jì)程序時(shí)使用。 ( 5)語(yǔ)言簡(jiǎn)捷,易學(xué)易用。 2. 試述 SQL 的定義功能。 答: SQL 的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。 SQL 語(yǔ)言使用 CREATE TABLE 語(yǔ)句定義建立基本表,; ALTER TABLE 語(yǔ)句修改基本表定義, DROP TABLE 語(yǔ)句刪除基本表;建立索引使用 CREATE INDEX 語(yǔ)句建 立索引, DROP INDEX 語(yǔ)句刪除索引表; SQL 語(yǔ)言使用 CREATE VIEW 命令建立視圖, DROP VIEW語(yǔ)句刪除視圖。 3. 用 SQL 語(yǔ)句建立第 3 章習(xí)題 3 中的四個(gè)表。 答: 對(duì)于 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), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT); J(JNO, JNAME, CITY); 建 J 表 CREATE TABLE J (JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10)); SPJ(SNO, PNO, JNO, QTY); 建 SPJ 表 CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT); 4. 針對(duì)上題中建立的四個(gè)表試用 SQL 語(yǔ)言完成第 3 章習(xí)題 3 中的查詢。 答: ( 1) 求供應(yīng)工程 J1 零件的供應(yīng)商號(hào)碼 SNO; SELECT SNO FROM SPJ WHERE JNO=‘ J1’; ( 2) 求供應(yīng)工程 J1 零件 P1 的供應(yīng)商號(hào)碼 SNO; SELECT SNO FROM SPJ WHERE JNO=‘ J1’ AND PNO=‘ P1’; ( 3) 求供應(yīng)工程 J1 零件為紅色的供應(yīng)商號(hào)碼 SNO; SELECT SNO FROM SPJ WHERE JNO=‘ J1’ AND PNO IN (SELECT PNO FROM P WHERE COLOR=‘紅’ ); 或 SELECT SNO FROM SPJ, P WHERE JNO=‘ J1’ AND = AND COLOR=‘紅’; ( 4) 求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào) JNO; 解析: 用 SQL 語(yǔ)言表示如下: SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE = AND SNO IN (SELECT SNO FROM S WHERE CITY=‘天津’ ) AND PNO IN (SELECT PNO FROM P WHERE COLOR=‘紅’ )); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT *1 FROM SPJ, S, P WHERE = AND = AND = AND =‘天津’ AND P. COLOR=‘紅’ ); 注意: 從 J 表入手,以包含那些尚未使用任何零件的工程號(hào)。 ( 5) 求至少用了供應(yīng)商 S1 所供應(yīng)的全部零件的工程號(hào) JNO 。 解析: 用 SQL 語(yǔ)言表示如下: SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS (SELECT * FROM SPJ SPJX WHERE SNO=39。S139。 AND NOT EXISTS (SELECT * FROM SPJ SPJY WHERE = AND = AND =’ S1’)); AND =39。S139。 )); 5. 針對(duì)習(xí)題 3 中的四個(gè)表試用 SQL 語(yǔ)言完成以下各項(xiàng)操作: ( 1)找出所有供應(yīng)商的姓名和所在城市。 ( 2)找出所有零件的名稱、顏色、重量。 ( 3)找出使用供應(yīng)商 S1 所供應(yīng)零件的工程號(hào)碼。 ( 4)找出工程項(xiàng)目 J2 使用的各種零件的名稱及其數(shù)量。 ( 5)找出上海廠商 供應(yīng)的所有零件號(hào)碼。 ( 6)找出使用上海產(chǎn)的零件的工程名稱。 ( 7)找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼。 ( 8)把全部紅色零件的顏色改成藍(lán)色。 ( 9)由 S5 供給 J4 的零件 P6 改為由 S3 供應(yīng),請(qǐng)作必要的修改。 ( 10)從供應(yīng)商關(guān)系中刪除 S2 的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。 ( 11)請(qǐng)將 (S2, J6, P4, 200) 插入供應(yīng)情況關(guān)系。 答: (1) 找出所有供應(yīng)商的姓名和所在城市。 SELECT SNAME, CITY FROM S。 (2) 找出所有零件的名稱、顏色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P。 (3) 找出使用供應(yīng)商 S1 所供應(yīng)零件的工程號(hào)碼。 SELECT JNO FROM SPJ WHERE SNO=‘ S1’ 。 (4) 找出工程項(xiàng)目 J2 使用的各種零件的名稱及其數(shù)量。 SELECT , FROM P, SPJ WHERE = AND =39。J239。 (5) 找出上海廠商供應(yīng)的所有零件號(hào)碼。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN ( SELECT SNO FROM S WHERE CITY=39。上海 39。) 。 (6) 找出使用上海產(chǎn)的零件的工程名稱。 SELECT JNAME FROM J, SPJ, S WHERE J. JNO=SPJ. JNO AND SPJ. SNO= AND =39。上海 39。 或 SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ, S WHERE SPJ. SNO= AND =39。上海 39。)。 (7) 找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼。 SELECT JNO FROM J WHERE NOT EXISTS (S