結(jié)構(gòu)化查詢語言(SQL)
一、選擇題
1. 關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的SQL語言是______。
A)關(guān)系順序查詢語言B)關(guān)系結(jié)構(gòu)查詢語言
C)關(guān)系描述語言D)國際標(biāo)準(zhǔn)結(jié)構(gòu)化查詢語言
2. 在關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL中,實(shí)現(xiàn)數(shù)據(jù)檢索的語句是______。
A)SELECTB)LOADC)FETCHD)SET
3. SQL語言提供______語句用于實(shí)現(xiàn)數(shù)據(jù)存取的安全性控制。
A)CREATE TABLEB)ODMMILC)GRANT和REVOKED)ROLLBACK
4. 在SQL語言中,ROLLBACK語句的主要作用是______。
A)終止程序B)事務(wù)結(jié)束C)保存數(shù)據(jù)D)事務(wù)回滾
5. 在下列的SQL語句中,屬于數(shù)據(jù)控制語句的是______。
1. CREATE 2. SELECT 3. UPDATE 4. GRANT
5. DELETE 6. ALTER 7. INSERT 8. REVOKE
A)1,5,6,7B)4,8C)2,3,6,8D)1,5,7
6. SQL語言中的COMMIT語句的主要作用是______。
A)結(jié)束程序B)返回系統(tǒng)C)存儲(chǔ)數(shù)據(jù)D)提交事務(wù)
7. 在數(shù)據(jù)庫應(yīng)用中,一般下一個(gè)SQL語句產(chǎn)生或處理戶組記錄,而數(shù)據(jù)庫語句一次只能處理下一個(gè)記錄,其操作可通過使用______來實(shí)現(xiàn)。
A)指針(POINTER)B)游標(biāo)(CURSOR)
C)數(shù)組(DIMENSION)D)棧(STACK)
8. SQL語言具有多種優(yōu)點(diǎn),SQL是______年成為關(guān)系數(shù)據(jù)庫語言的國際標(biāo)準(zhǔn)的。
A)1986年B)1987年C)1988年D)1989年
9. 若用如下的SQL語句創(chuàng)建一個(gè)表S:
CREATE TABLES(S# CHAR(6) NOT NULL,SNAME CHAR(8) NOT NULL,SEX CHAR(2),AGE INTEGER)
向S表插入如下行時(shí),______可以被插入。
A)('554231','四明',男,21)
B)( '723654','陳剛',NULL,NULL)
C)(NULL,'金山','男','19')
D)( '773211',NULL,'女',20)
10. 在SQL查詢時(shí),使用WHERE子句指出的是______。
A)查詢目標(biāo)B)查詢結(jié)果C)查詢條件D)查詢視圖
11. 在命令窗口執(zhí)行SQL命令時(shí),若命令要占用多行,續(xù)行符是______。
A)冒號(hào)(:)B)分號(hào)(;)C)逗號(hào)(,)D)連字符(-)
12. UPDATE--SQL語句的功能是______。
A)屬于數(shù)據(jù)定義功能B)屬于數(shù)據(jù)查詢功能
C)可以修改表中某些列的屬性D)可以修改表中某些列的內(nèi)容
13. SELECT--SQL語句是______。
A)選擇工作區(qū)語句B)數(shù)據(jù)查詢語句
C)選擇標(biāo)準(zhǔn)語句D)數(shù)據(jù)修改語句
14. SQL語言是______語言。
A)層次數(shù)據(jù)庫B)網(wǎng)絡(luò)數(shù)據(jù)庫C)關(guān)系數(shù)據(jù)庫D)非數(shù)據(jù)庫
15. 在SQL中,刪除視圖用______。
A)DROP SCHEMA命令B)CREATE TABLE命令
C)DROP VIEW命令D)DROP INDEX命令
16. 如下面的數(shù)據(jù)庫的表中,若職工表的主關(guān)鍵字是職工號(hào),部門表的主關(guān)鍵字是部門號(hào),SQL操作______不能執(zhí)行。
職工表 部門表
職工號(hào) 職工名部門號(hào)工資部門號(hào)部門名主任
001 李紅 01 580 01 人事處 高平
005 劉軍 01 670 02 財(cái)務(wù)處 蔣華
025 王芳 03 720 03 教務(wù)處 許紅
038 張強(qiáng) 02 650 04 學(xué)生處 杜瓊
A)從職工表中刪除行('025','王芳','03',720)
B)將行('005','喬興','04',750)插入到職工表中
C)將職工號(hào)為'001'的工資改為700
D)將職工號(hào)為'038'的部門改為'03'
17. 在SQL中,可以用謂詞UNIQUE來測試一個(gè)集合中是否______。
A)為空集合B)存在重復(fù)分量值
C)為非空集合D)存在重復(fù)元組
18. SQL的核心是______。
A)數(shù)據(jù)查詢B)數(shù)據(jù)修改C)數(shù)據(jù)定義D)數(shù)據(jù)控制
19. 用SQL語句建立表時(shí)將屬性定義為主關(guān)鍵字,應(yīng)使用短語______。
A)CHECKB)PRIMARY KEYC)FREED)UNIQUE
20. SQL實(shí)現(xiàn)分組查詢的短語是______。
A)ORDER BYB)GROUP BYC)HAVINGD)ASC
21. 用SQL語句建立表時(shí)為屬性定義有效性規(guī)則,應(yīng)使用短語______。
A)DEFAULTB)PRIMARY KEYC)CHECKD)UNIQUE
22. SQL語言是具有______的功能。
A)關(guān)系規(guī)范化、數(shù)據(jù)操縱、數(shù)據(jù)控制B)數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制
C)數(shù)據(jù)定義、關(guān)系規(guī)范化、數(shù)據(jù)控制D)數(shù)據(jù)定義、關(guān)系規(guī)范化、數(shù)據(jù)操縱
23. 在SQL的計(jì)算查詢中,用于求平均值的函數(shù)是______。
A)AVGB)AVERAGEC)averageD)AVE
24. 不屬于數(shù)據(jù)定義功能的SQL語句是______。
A)CREAT TABLEB)CREAT CURSORC)UPDATED)ALTER TABLE
25. SQL語句中修改表結(jié)構(gòu)的命令是______。
A)MODIFY TABLEB)MODIFY STRUCTURE
C)ALTER TABLED)ALTER STRUCTURE
26. HAVING短語不能單獨(dú)使用,必須接在______之后。
A)ORDER BYB)FROMC)WHERED)GROUP BY
27. 建立表結(jié)構(gòu)的SQL命令是______。
A)CREAT CURSORB)CREAT TABLE
C)CREAT INDEXD)CREAT VIEW
28. SQL中可使用的通配符有______。
A) *(星號(hào))B) %(百分號(hào))C) _(下劃線)D) B和C
29. 關(guān)于INSERT--SQL語句描述正確的是______。
A)可以向表中插入若干條記錄B)在表中任何位置插入一條記錄
C)在表尾插入一條記錄D)在表頭插入一條記錄
30. 只有滿足連接條件的記錄才包含在查詢結(jié)果中,這種連接為______。
A)左連接B)右連接C)內(nèi)部連接D)完全連接
31. SQL語句中條件短語的關(guān)鍵字是______。
A)WHEREB)FORC)WHILED)CONDITION
32. SQL的查詢語句中,______短語用于實(shí)現(xiàn)關(guān)系的投影操作。
A)WHEREB)SELECTC)FROMD)GROUP BY
33. SQL語言的數(shù)據(jù)操縱語句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最頻繁的語句是______。
A)SELECTB)INSERTC)UPDATED)DELETE
34. 用于顯示部分查詢結(jié)果的TOP短語,必須與______同時(shí)使用,才有效果。
A)ORDER BYB)FROMC)WHERED)GROUP BY
35. 下面有關(guān)HAVING子句描述錯(cuò)誤的是______。
A)HAVING子句必須與GROUP BY 子句同時(shí)使用,不能單獨(dú)使用
B)使用HAVING子句的同時(shí)不能使用WHERE子句
C)使用HAVING子句的同時(shí)可以使用WHERE子句
D)使用HAVING子句的作用是限定分組的條件
36. 當(dāng)前盤當(dāng)前目錄下有數(shù)據(jù)庫db_stock,其中有數(shù)據(jù)庫表stock.dbf,該數(shù)據(jù)庫表的內(nèi)容是:
股票代碼 股票名稱單價(jià)交易所
600600 青島啤酒 7.48 上海
600601 方正科技 15.20 上海
600602 廣電電子 10.40 上海
600603 興業(yè)房產(chǎn) 12.76 上海
600604 二紡機(jī) 9.96 上海
600605 輕工機(jī)械 14.39 上海
000001 深發(fā)展 7.48 深圳
000002 深萬科 12.50 深圳
(1)執(zhí)行如下SQL語句后,表stock_x中的記錄個(gè)數(shù)是______。
SELECT DISTINCT 單價(jià) FROM stock;
WHERE 單價(jià)=(SELECT min(單價(jià)) FROM stock) INTO DBF stock_x
A)1B)2C)3D)4
(2)有如下SQL語句
SELECT max(單價(jià)) INTO ARRAY a FROM stock
執(zhí)行該語句后______。
A)A[1]的內(nèi)容為15.20B)A[1]的內(nèi)容為6
C)A[0]的內(nèi)容為15.20D)A[0]的內(nèi)容為6
(3)有如下SQL SELECT語句
SELECT * FROM stock WHERE 單價(jià) BETWEEN 12.76 AND 15.20
與該語句等價(jià)的是______。
A)SELECT * FROM stock WHERE 單價(jià)<=15.20.AND.單價(jià) >=12.76
B)SELECT * FROM stock WHERE 單價(jià)<=15.20.AND.單價(jià) >12.76
C)SELECT * FROM stock WHERE 單價(jià)<=15.20.AND.單價(jià) <=12.76
D)SELECT * FROM stock WHERE 單價(jià)<=15.20.AND.單價(jià) <12.76
(4)在當(dāng)前盤當(dāng)前目錄下刪除表stock的命令______。
A)DROP stockB)DELETE TABLE stock
C)DROP TABLE stockD)DELETE stock
(5)有如下SQL語句
SELECT 股票代碼,avg(單價(jià)) as 均價(jià) FROM stock GROUP BY 交易所 INTO DBF temp
執(zhí)行該語句后temp表中第二條記錄的"均價(jià)"字段的內(nèi)容是_____。
A)7.48B)9.99C)11.73D)15.20
(6)有如下SQL語句
CREATE VIEW stock_view AS SELECT * FROM stock WHERE 交易所="深圳"
執(zhí)行該語句后產(chǎn)生的視圖包含的記錄個(gè)數(shù)是______。
A)1B)2C)3D)4
(7)將stock表的股票名稱字段的寬度由8改為10,應(yīng)使用SQL語句______。
A)ALTER TABLE stock 股票名稱 WTIH C(10)
B)ALTER TABLE stock 股票名稱 C(10)
C)ALTER TABLE stock ALTER 股票名稱 C(10)
D)ALTER stock ALTER 股票名稱 C(10)
37. 設(shè)有圖書管理數(shù)據(jù)庫:
圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))
讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))
借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))
(1)對(duì)于圖書管理數(shù)據(jù)庫,分別求出各個(gè)單位當(dāng)前借閱圖書的讀者人次。下面的SQL語句正確的是______。
SELECT 單位,______ FROM 借閱,讀者 WHERE
借閱.借書證號(hào)=讀者.借書證號(hào) ______
A)COUNT(借閱.借書證號(hào)) GROUP BY 單位
B)SUM(借閱.借書證號(hào)) GROUP BY 單位
C)COUNT(借閱.借書證號(hào)) ORDER BY 單位
D)COUNT(借閱.借書證號(hào)) HAVING 單位
(2)對(duì)于圖書管理數(shù)據(jù)庫,求CIE單位借閱圖書的讀者的人數(shù)。
下面SQL語句正確的是______。
SELECT ______ FROM 借閱 WHERE 借書證號(hào) _______
A)COUNT (DISTINCT 借書證號(hào)) IN (SELECT 借書證號(hào) FROM 讀者 WHERE
單位="CIE")
B)COUNT(DISTINCT 借書證號(hào)) IN (SELECT 借書證號(hào) FROM 借閱 WHERE
單位="CIE")
C)SUM(DISTINCT 借書證號(hào)) IN (SELECT 借書證號(hào) FROM 讀者 WHERE
單位="CIE")
D)SUM (DISTINCT 借書證號(hào)) IN (SELECT 借書證號(hào) FOR 借閱 WHERE
單位="CIE")
(3)對(duì)于圖書管理數(shù)據(jù)庫,檢索當(dāng)前至少借閱了2本圖書的讀者的姓名和所在單位。下面SQL語句正確的是______。
SELECT 姓名,單位 FROM 讀者 WHERE 借書證號(hào) IN______
A)(SELECT 借書證號(hào) FROM 借閱 GROUP BY 總編號(hào) HAVING COUNT(*)>=2)
B)(SELECT 借書證號(hào) FROM 讀者 GROUP BY 借書證號(hào) HAVING COUNT(*)>=2)
C)(SELECT 借書證號(hào) FROM 借閱 GROUP BY 借書證號(hào) HAVING SUM(*)>=2)
D)(SELECT 借書證號(hào) FROM 借閱 GROUP BY 借書證號(hào) HAVING COUNT(*)>=2)
(4)對(duì)于圖書管理數(shù)據(jù)庫,求電子工業(yè)出版社出版圖書的最高單價(jià)、最低單價(jià)和平均單價(jià)。下面SQL語句正確的是______。
SELECT ______ FROM 圖書;
WHERE 出版單位="電子工業(yè)出版社"
A)MAX(單價(jià)),MIN(單價(jià)),AVG(單價(jià))
B)MAX(單價(jià)),MIN(單價(jià)),AVERAGE(單價(jià))
C)MAX(單價(jià)),MIX(單價(jià)),AVG(單價(jià))
D)MAX(單價(jià)),SUM(單價(jià)),AVG(單價(jià))
(5)對(duì)于圖書管理數(shù)據(jù)庫,查詢所藏圖書中,有兩種及兩種以上的圖書出版社所出版圖書的最高單價(jià)和平均單價(jià)。下面SQL語句正確的是______。
SELECT 出版單位,MAX(單價(jià)),AVG(單價(jià)) FROM 圖書 ______
A)GROUP BY 出版單位 HAVING COUNT 總編號(hào)>=2
B)GROUP BY 出版單位 HAVING COUNT(DISTINCT 總編號(hào))>=2
C)GROUP BY 出版單位>=2
D)WHERE 總編號(hào)>=2
(6)對(duì)于圖書管理數(shù)據(jù)庫,如下的SQL命令:
SELECT 書名,作者,出版單位 FROM 圖書管理!圖書;
WHERE 出版單位="高等教育出版社" OR 出版單位="電子工業(yè)出版社"
其中,SELECT后的書名、作者和出版單位所對(duì)應(yīng)的關(guān)系操作是______。
A)投影操作B)連接C)選擇D)合并
二、填空題
1. 關(guān)系語言的特點(diǎn)是高度______,也就是只要說明“做什么”而不用說明“怎么做”。
2. 在SELECT-SQL語句中,表示條件表達(dá)式用WHERE子句,分組用______子句,排序用______子句。
3. SQL可以控制視圖的______方法。
4. 在SQL中,測試列值是否為空值用______運(yùn)算符號(hào),測試列值是否為非空值用______運(yùn)算符號(hào)。
5. 在SQL中,用______子句消除重復(fù)出現(xiàn)的元組。
6. 在SQL中,ALTER命令有兩個(gè)選擇項(xiàng),_____子命令用于修改字段名,_____子命令用于增加新的字段。
7. 自然連接是去掉重復(fù)屬性的_______連接。
8. 在SQL中,字符串匹配運(yùn)算符用______;匹配符______表示零個(gè)或多個(gè)字符,______表示任何一個(gè)字符。
9. SQL SELECT語句為了將查詢結(jié)果存放到臨時(shí)表中應(yīng)該使用_____短語。
10. 在SQL語句中空值用______表示。
11. 在SQL中,用______命令可以從表中刪除行,用______命令可以從數(shù)據(jù)庫中刪除數(shù)據(jù)表。
12. ______是指只有滿足連接條件的記錄才包含在查詢結(jié)果中。
13. SQL支持集合的并運(yùn)算,運(yùn)算符是______。
14. 設(shè)有如下關(guān)系表R:R(NO,NAME,SEX,AGE,CLASS),主關(guān)鍵字是NO
其中NO為學(xué)號(hào)(數(shù)值型),NAME為姓名,SEX為性別,AGE為年齡,CLASS為班號(hào)。寫出實(shí)現(xiàn)下列功能的SQL語句。
(1)插入"95031"班學(xué)號(hào)為30,姓名為"鄭和"的學(xué)生記錄;______。
(2)刪除學(xué)號(hào)為20的學(xué)生記錄;______。
(3)將學(xué)號(hào)為10的學(xué)生姓名改為"王華";______。
(4)刪除姓"王"的學(xué)生記錄_______。
15. 設(shè)有圖書管理數(shù)據(jù)庫:
圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))
讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))
借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))
(1)用SQL的CREATE命令建立借閱表(字段順序要相同),請(qǐng)用SQL語句填空:______。
(2)對(duì)于圖書管理數(shù)據(jù)庫,查詢每類圖書的冊(cè)數(shù)和平均單價(jià)。請(qǐng)對(duì)下面的SQL語句填空:
SELECT 分類號(hào),______FROM 圖書,______ 分類號(hào)。
(3)對(duì)于圖書管理數(shù)據(jù)庫,要查詢只借閱了一本圖書的讀者姓名和職稱,請(qǐng)對(duì)下面的SQL語句填空:
SELECT 姓名,職稱 FROM 圖書管理!讀者
WHERE 借書證號(hào) ______ (SELECT 借書證號(hào) FROM 圖書管理!借閱);
GROUP BY ______ HAVING ______。
(4)為圖書管理數(shù)據(jù)庫的讀者表增加工資屬性(N(8,2))。請(qǐng)對(duì)下面的SQL語句填空:
_______。
(5)對(duì)于圖書管理數(shù)據(jù)庫的讀者表,為工資屬性增加有效性規(guī)則(工資大于等于0)和出錯(cuò)提示信息(工資應(yīng)該大于等于0!)。請(qǐng)對(duì)下面的SQL語句填空:
ALTER TABLE 讀者 ALTER 工資 ______。
(6)對(duì)于圖書管理數(shù)據(jù)庫,查詢每類圖書中多于1冊(cè)的冊(cè)數(shù)和平均單價(jià)。請(qǐng)對(duì)下面的SQL語句填空:
SELECT 分類號(hào),COUNT(*),AVG(單價(jià)) FROM 圖書_______ 分類號(hào) _______。
(7)對(duì)圖書管理數(shù)據(jù)庫,查詢圖書表中的所有元組。請(qǐng)對(duì)下面的SQL語句填空:
______。
(8)對(duì)圖書管理數(shù)據(jù)庫,查詢所有已借出的書名。請(qǐng)對(duì)下面的SQL語句填空:
SELECT 書名 FROM 圖書WHERE 總編號(hào) ______。
(9)對(duì)于圖書管理數(shù)據(jù)庫,檢索書名是以"Internet"開頭的所有圖書書名和作者。請(qǐng)對(duì)下面的SQL語句填空:
SELECT 書名,作者 FROM 圖書 WHERE ______。
(10)對(duì)于圖書管理數(shù)據(jù)庫,檢索沒有借閱任何圖書的讀者姓名和所在單位。請(qǐng)對(duì)下面的SQL語句填空:
SELECT 姓名,單位 FROM 讀者 WHERE _______;
(SELECT * FROM 借閱 WHERE ______)。
(11)對(duì)圖書管理數(shù)據(jù)庫,刪除借閱表的候選索引hsxy。請(qǐng)對(duì)下面的SQL語句填空:
ALTER TABLE 借閱 ______。
(12)如果要查詢借閱了兩本和兩本以上圖書的讀者姓名和單位,請(qǐng)對(duì)下面SQL語句填空。
SELECT 姓名,單位 FROM 圖書管理!讀者;
WHERE 借書證號(hào) IN
(SELECT______FROM 圖書管理!借閱 GROUP BY 借書證號(hào) _____COUNT(*)>=2)
(13)對(duì)于圖書管理數(shù)據(jù)庫,查詢與"005"號(hào)借書證借有相同書的借書證號(hào)。請(qǐng)對(duì)下面的SQL語句填空:
SELECT DISTINCT 借書證號(hào) FROM 借閱 WHERE 總編號(hào) ______。
(14)對(duì)圖書管理數(shù)據(jù)庫,將讀者表中的借書證號(hào)屬性名改為書證號(hào)。請(qǐng)對(duì)下面的SQL語句填空:
ALTER TABLE 讀者 ______。
(15)對(duì)圖書管理數(shù)據(jù)庫的借閱表,將借書證號(hào)和總編號(hào)定義為借閱表的候選索引,索引名是hxsy。請(qǐng)對(duì)下面的SQL語句填空:
ALTER TABLE 借閱 ______。
(16)對(duì)于圖書管理數(shù)據(jù)庫,將圖書表中電子工業(yè)出版社的圖書的單價(jià)漲價(jià)10%。對(duì)下面的SQL語句填空:
UPDATE 圖書 ______ WHERE 出版單位="電子工業(yè)出版社"
(17)有如下SQL語句:
SELECT 讀者.姓名,讀者.職稱,圖書.書名,借閱.借書日期;
FROM圖書管理!讀者,圖書管理!借閱,圖書管理!圖書;
WHERE借閱.借書證號(hào)=讀者.借書證號(hào) AND 圖書.總編號(hào)=借閱.總編號(hào)
其中WHERE子句中的"借閱.借書證號(hào)=讀者.借書證號(hào)"對(duì)應(yīng)的關(guān)系操作是 _____。