- 相關推薦
結構化查詢語言SQL習題與答案
篇一:結構化查詢語言SQL習題與答案
一、選擇題
1. 在SQL包含的功能中,最重要的功能是_______。
A) 數據查詢 B) 數據操縱 C) 數據定義 D) 數據控制
2. 使用SQL語言有兩種方式,它們是_______。
A) 菜單式和交互式B) 嵌入式和程序式
C) 交互式和嵌入式D) 命令式和解釋式
3. SQL的全部功能可以用9個動詞概括,其中動詞INSERT是屬于下列______功能。
A) 數據查詢 B) 數據操縱 C) 數據定義 D) 數據控制
4. SQL語言支持數據庫的三級模式結構,其中模式對應于______。
A) 存儲文件 B) 視圖 C) 基本表 D) 視圖和基本表
5. 在創建數據表時,可以給字段規定NULL或NOT NULL值,NULL值的含義是______。
A) 0B) 空格 C) NULL D) 不確定
6. 在SQL的ALTER語句中,用于刪除字段的子句是______。
A) ALTER B) DELETE C) DROP D) MODIFY
7. SQL中的INSERT語句可以用于______。
A) 插入一條記錄 B) 插入一個字段
C) 插入一個索引 D) 插入一個表
8. 下列描述錯誤的是______。
A) 用INSERT-SQL語句可以插入一條記錄
B) 用INSERT-SQL語句可以插入多條記錄
C) 使用INSERT-SQL語句可以插入記錄的部分數據
D)使用INSERT-SQL語句插入記錄時列名的排列順序必須與表定義時的順
序一致
9. INSERT-SQL語句中所使用的數據不能來自于______。
A) 數組 B) 變量 C) 查詢 D) 索引
10. SQL中的UPDATE語句可以用于______。
A) 更新數據表的結構 B) 更新數據表的值
C) 更新索引D) 更新查詢
11. 下列描述錯誤的是______。
A) SQL中的UPDATE語句可以修改一條記錄
B)SQL中的UPDATE語句可以修改多條記錄
C)SQL中的UPDATE語句可以用子查詢提供要修改的值
D)SQL中的UPDATE語句可以修改子查詢的結果
12. SQL中的DELETE語句可以用于______。
A) 刪除數據表的結構 B) 刪除數據表
C) 刪除數據表的記錄 D) 刪除數據表的字段
13. 在SELECT語句中,為了在查詢結果中消去重復記錄,應使用________項。
A) PERCENTB) DISTINCTC) TOP ND) WITH TIES
14. 為了在查詢結果中只包含兩個表中符合條件的記錄,應使用________聯接類型。
A) INNER B) LEFT C) RIGHT D) FULL
15. 在SELECT-SQL語句中,要將查詢結果保存在文本文件中的選項是________。
A) INTO〈新表名〉B) TO FILE 〈文件名〉
C) TO PRINTER D) TO SCREEN
16. 在SQL查詢時,使用WHERE 子句提出的是________。
A) 查詢目標 B) 查詢結果 C) 查詢條件D) 查詢分組
17. 在SELECT語句中,如果要對輸出的記錄進行排序,應選使用________項。
A) ORDER B) GROUPC) HAVINGD) TOP
18. 在SELECT語句中,________子句后可能帶有HAVING短語。
A) ORDERB) GROUP C) WHERED) SELECT
19. 在SELECT-SQL語言中,________子句相當于關系中的投影運算。
A) WHEREB) JOINC) FROM D) SELECT
20. 如果要選擇分數在70和80之間的記錄,________是正確的。
A) 分數>=70 AND <=80 B) 分數BETWEEN 70 AND 80
C) 分數>=70 OR 分數<=80D) 分數IN (70,80)
21. 如果學生表中有”所在系”字段,要統計全校有多少個系,可用命令子句________。
A) SELECT SUM(所在系)B) SELECT SUM(DISTINCT 所在系)
C) SELECT COUNT(所在系)D) SELECT COUNT(DISTINCT 所在系)
22. 下列語句錯誤的是________。
A) SELECT * FROM 學生表
B)SELECT 學號 AS 學生編號 FROM 學生表
C) SELECT ALL FIELDS FROM 學生表
D) SELECT DISTINCT 學號 FROM 選課表
23. 查詢除教授和副教授以外的教師姓名,其WHERE子句為________。
A)WHERE 職稱 NOT BETWEEN “教授” AND “副教授”
B)WHERE 職稱!=“教授” AND “副教授”
C)WHERE 職稱 NOT LIKE (“教授”,”副教授”)
D)WHERE 職稱NOT IN (“教授”,”副教授”)
24. 在選課表中,找出成績不為空的記錄,應使用下列語句________。
A)SELECT *FROM 選課表 WHERE 成績 IS “ “
B)SELECT *FROM 選課表 WHERE 成績=0
C)SELECT *FROM 選課表 WHERE 成績<>NULL
D)SELECT *FROM 選課表 WHERE 成績 IS NOT NULL
25. 下列COUNT函數的用法錯誤的是________。
A)COUNT(ALL)B)COUNT(*)
C)COUNT(成績)D)COUNT(DISTINCT 學號)
26. 要從選課表中統計每個學生選修的課程門數,應使用的SELECT-SQL語句是________。
A)SELECT COUNT(*)FROM 選課表
B)SELECT COUNT(*)FROM 選課表 GROUP BY 學號
C)SELECT DISTINCT COUNT(*)FROM 選課表
D)SELECT DISTINCT COUNT(*)FROM 選課表 GROUP BY 學號
27. 要從選課表中查詢選修了三門課程以上的學生學號,應使用的SELECT-SQL語句是________。
A)SELECT 學號 FROM 選課表 WHERE COUNT(*)>=3
B)SELECT 學號 FROM 選課表 HAVING COUNT(*)>=3
C)SELECT 學號 FROM 選課表 GROUP BY 學號 HAVING COUNT(*)>=3
D)SELECT 學號 FROM 選課表 GROUP BY 學號 WHERE COUNT(*)>=3
28. 要從學生表中查詢入?偡肿罡叩3個學生的記錄,應使用的SELECT-SQL語句是________。
A)SELECT * FROM 學生表 ORDER BY 入?偡諥SC
B)SELECT * FROM 學生表 ORDER BY 入校總分DESC
C)SELECT * FROM 學生表 TOP 3 ORDER BY 入?偡諥SC
D)SELECT * FROM 學生表 TOP 3 ORDER BY 入?偡諨ESC
29. 在進行多表聯接查詢時,用________表明聯接的條件。
A)FOR或WHILE B)FOR或WHERE
C)WHERE 或ON D)JOIN 或ON
30. 查詢選修課成績在80分以上的女生姓名,用________語句。
A)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號
.OR.性別=“女”.AND.成績>=80
B)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號
.AND.性別=“女”.OR.成績>=80
C)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號
.OR.性別=“女”.OR.成績>=80
D)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號
.AND.性別=“女”.AND.成績>=80
31. 查詢所有教師所講授的課程,列出教師號,姓名和課程號,用________語句。
A)SELECT 教師表.教師號,姓名,課程號 FROM 教師表,授課表 WHERE 教師表.教師號=教師號
B)SELECT教師表.教師號,姓名,課程號 FROM 教師表,授課表
ON教師表.教師號=授課表.教師號
C)SELECT教師表.教師號,姓名,課程號 FROM 教師表 INNER JION授課表 ON 教師表.教師號=授課表.教師號
D)SELECT教師表.教師號,姓名,課程號 FROM 教師表 INNER JION授課表 WHERE 教師表.教師號=授課表.教師號
32. 查詢”陳靜”教師所講授的課程,列出姓名和課程名,用________語句。A)SELECT姓名,課程名 FROM 教師表,授課表 ,課程表
WHERE 教師表.教師號=授課表.教師號 AND 姓名=“陳靜”
B)SELECT姓名,課程名 FROM 教師表,授課表 ,課程表
WHERE 教師表.教師號=授課表.教師號 AND授課表.課程號=課程表.課程號AN
D 姓名=“陳靜”
C) SELECT姓名,課程名 FROM 教師表,授課表 ,課程表
WHERE 教師表.教師號=授課表.教師號 AND授課表.教師號=課程表.課程號AN
D 姓名=“陳靜”
D) SELECT姓名,課程名 FROM 教師表,授課表 ,課程表
WHERE 授課表.課程號=課程表.課程號AND 姓名=“陳靜”
33. 查詢所有比”陳靜”教師工資高的教師姓名及工資,使用下列語句 SELECT
X.姓名,X.工資 FROM 教師表 AS X,教師表 AS Y
WHERE X.工資>Y.工資AND Y.姓名=“陳靜”。
該語句使用的查詢是________。
A) 內連接查詢 B) 外連接查詢
C) 自身連接查詢D) 子查詢
34. 查詢與”陳靜”教師職稱相同的教師名,用________語句。
A)SELECT 姓名FROM 教師表 WHERE 職稱=“陳靜”職稱。
B)SELECT X.姓名FROM 教師表 AS X,教師表 AS Y
WHERE X.職稱=Y.職稱WHERE Y.姓名=“陳靜”。
C)SELECT姓名FROM 教師表WHERE 職稱=(SELECT職稱 FROM 教師
AND 姓名=“陳靜”)
D)SELECT姓名FROM 教師表WHERE 職稱=(SELECT職稱 FROM 教師
WHERE 姓名=“陳靜”)
35. 當子查詢返回的值是一個集合時,________不是在比較運算符和子查詢中使用的量詞。
A) RESTB) IN C) ALL D) ANY
36. 查詢講授課程號為C140的教師姓名,錯誤的語句是________。
A)SEL
ECT 姓名FROM 教師表 WHERE(教師號=ANY
(SELECT 教師號FROM 授課表 WHERE課程號=“C140”))
B)SELECT 姓名FROM 教師表 WHERE EXISTS(SELECT * FROM授課表
WHERE 教師號=教師表.教師號 AND課程號=“C140”)
C)SELECT 姓名FROM 教師表,授課表 WHERE教師表.教師號=授課表.教師
號 AND授課表.課程號=“C140”
D)SELECT 姓名FROM 教師表 WHERE(教師號=ALL
(SELECT 教師號FROM 授課表 WHERE課程號=“C140”))
37. 查詢其他系中比計算機系所有教師工資都高的教師姓名和工資,正確的語句是________。
A)SELECT 姓名,工資FROM 教師表 WHERE工資>ANY(SELECT 工資 FRO
M 教師表 WHERE所在系=“計算機”)AND 所在系<>計算機
B)SELECT 姓名,工資FROM 教師表 WHERE工資>(SELECT MIN(工資) FR
OM 教師表 WHERE所在系=“計算機”)AND 所在系<>計算機
C)SELECT 姓名,工資FROM 教師表 WHERE工資>ALL(SELECT 工資 FRO
M 教師表 WHERE所在系=“計算機”)AND 所在系<>計算機
D)SELECT 姓名,工資FROM 教師表 WHERE工資>(SELECT MAX(工資) F
ROM 教師表 WHERE所在系=“計算機”AND 所在系<>計算機)
38. 下列查詢
SELECT 學號,SUM(成績)AS 總分FROM 選課表 WHERE (學號=“C1011101”)
GROUP BY 學號
UNION
SELECT 學號,SUM(成績)AS 總分FROM 選課表 WHERE (學號=“C1011102”)
GROUP BY 學號
使用的是________。
A) 合并查詢 B) 外連接查詢
C) 自身連接查詢D) 子查詢
39. 下列________不是SQL語言具有的功能。
A) 數據定義 B) 數據操縱 C) 數據分配D) 數據查詢
40. SQL語言的核心是________。
A) 建表B) 查詢C) 匯總 D) 定義
41. DCL是下列________語言的簡稱。
A) 數據定義 B) 數據查詢 C) 數據操縱D) 數據控制
42. 視圖和基本表對應于數據庫三級模式中的________。
A) 外模式 B) 模式C) 內模式 D) 全部模式
43. 下列的完整性約束________是惟一性約束。
A) CHECK B) PRIMARY KEY
C) NULL/NOT NULL D) UNIQUE
44. 使用下列________約束,可以確保輸入的值在指定的范圍內。
A) CHECKB) PRIMARY KEY
C) NULL/NOT NULLD) FOREIGN KEY
45. 不屬于數據定義功能的SQL語句是________。
A) CREATE TABLEB) CREATE CURSOR
C) UPDATE D) ALTER TABLE
46. 在ALTER-SQL語句中________子句用于增加字段的長度。
A) ADD B) ALTER
C) MODIFY D) DROP
47. SQL的數據操作語句不包括______。
A) INSERT B) ALTER C) DELETE D) UPDATE
48. 在使用命令 INSERT INTO 〈表名〉[(列名…)] VALUSE(〈值〉)時下列描述錯誤的是______。
A) INSERT-SQL語句中列名的順序可以與表定義時的列名順序一致
B) INSERT-SQL語句中列名的順序可以與表定義時的列名順序不一致
C) INSERT-SQL語句中值的順序可以與列名的順序不一致
D)INSERT-SQL語句中值的順序必須與列名的順序一致
49. UPDATE-SQL語句的功能是______。
篇二:數據庫 練習題(答案)
第四章練習題
一、選擇題
1、設有兩個關系R(A,B)和S(B,C),與下列SELECT語句
SELECT A,B FROM R WHERE B NOT IN(SELECT B FROM S WHERE C='C56'); C]B.πA,B等價的關系代數表達式是 [ A.πA,B(σ
A,BC≠'C56'(R?S)) (R ? S) C≠'C56'C.R-π(σC= 'C56'(R?S)) D.R-π
B] A,B(σC≠'C56' (R?S)) 2、嵌入式SQL的預處理方式,是指[
A.識別出SQL語句,加上前綴標識和結束標志
B.把嵌入的SQL語句處理成函數調用形式
C.對源程序進行格式化處理
D.把嵌入的SQL語句編譯成目標程序
3、SQL中,“DELETE FROM 表名”表示 [ A]
A.從基本表中刪除所有元組 C.從數據庫中撤消這個基本表 B.從基本表中刪除所有屬性 D.從基本表中刪除重復元組
[ C]
B.計算屬性的個數 4、SQL中,聚合函數COUNT(列名)用于 A.計算元組個數
C.對一列中的非空值計算個數 D.對一列中的非空值和空值計算個數
5、在傳統SQL技術中,使用“ORDER BY”子句的SELECT語句查詢的結果,實際上為 [
B] A.數組 B.列表 C.包 D.集合
6、在數據庫中,能提高查詢速度的是(C )
A. 數據依賴 B. 視圖 C. 索引D. 數據壓縮
7、語句 from sc 表明( A )
A. 刪除sc中的全部記錄 B. 刪除基本表sc
C. 刪除基本表sc中的列數據 D. 刪除基本表sc中的部分行
8、在DB應用中,一般一條SQL 語句可產生或處理一組記錄,而DB主語言語句一般一次只能處理一條記錄,其協調可通過( B)實現。
A. 指針B. 游標 C.數組 D. 棧
9、在下列基本表的定義中,數值5表示( C )
CREATE TABLE student (Sno5) not null unique,Sname 2));
A. 表中有5條記錄 B. 表中有5列
C. 表中字符串Sno 的長度 D. 表格的大小
10、 在視圖上不能完成的操作是(C )
A. 更新視圖B. 查詢 C. 在視圖上定義新的基本表 D. 在視圖上定義新視圖
11、下列聚合函數中不忽略空值 (null) 的是 (C)
A、SUM (列名)B、MAX (列名)C、COUNT ( * )D、AVG (列名)
12、SQL的查詢語句的where子句中,對空值的操作,不正確的是 ( C )
A、where AGE IS NULLB、where AGE IS NOT NULL
C、where AGE = NULL D、where NOT (AGE IS NULL)
13、Transact-SQL對標準SQL的擴展主要表現為( A )。
A. 加入了程序控制結構和變量 B. 加入了建庫和建表語句
C. 提供了分組(Group By)查詢功能D. 提供了Min、Max待統計函數
14、以下哪種情況應盡量創建索引( A )。
A. 在Where子句中出現頻率較高的列 B. 具有很多NULL值的列
C. 記錄較少的基本表 D. 需要更新頻繁的基本表
15、下列SQL Server語句中出現語法錯誤的是(D )。
A. DECLARE @Myvar INT B. SELECT * FROM [AAA]
C. CREATE DATABASE AAA D. DELETE * FROM AAA
16、屬于事務控制的語句是(A)。
A. Begin Tran、Commit、RollBackB. Begin、Continue、End
C. Create Tran、Commit、RollBack D. Begin Tran、Continue、End
17、在SQL語言的SELECT語句中,實現投影操作的是哪個子句?(A )
A)select B)fromC)where D)grou by
18、 用二維表結構表示實體以及實體間聯系的數據模型稱為(C )
A)網狀模型 B)層次模型 C)關系模型 D)面向對象模型
第(19)至(21)題是基于如下兩個關系,其中雇員信息表關系EMP的主鍵是雇員號,部門信息表關系DEPT的主鍵是部門號
EMP DEPT
19、 若執行下面列出的操作,哪個操作不能成功執行?(D )
A) 從EMP中刪除行(‘010’,‘王宏達’,‘01’,1200)
B) 在EMP中插入行(‘102’,‘趙敏’,‘01’,1500)
C) 將EMP中雇員號=‘056’的工資改為1600元
D) 將EMP中雇員號=‘101’的部門號改為‘05’
20、若執行下面列出的操作,哪個操作不能成功執行?(C )
A) 從DEPT 中刪除部門號=‘03’的行
B)在DEPT中插入行(‘06’,‘計劃部’,‘6號樓’)
C) 將DEPT中部門號=‘02’的部門號改為‘10’
D) 將DEPT中部門號=‘01’的地址改為‘5號樓’
21、在雇員信息表關系EMP中,哪個屬性是外鍵(foreign key)?(C )
A) 雇員號 B) 雇員名 C) 部門號 D) 工資
22、設關系R和關系S的元數分別是3和4,關系T是R與S的廣義笛卡爾積,即:T=R×S,
則關系T的元數是(A )
A) 7B) 9C) 12D) 1
23、設屬性A是關系R的主屬性,則屬性A不能取空值(NULL)。這是(A )
A) 實體完整性規則 B) 參照完整性規則
C) 用戶定義完整性規則D) 域完整性規則
24、 下面列出的關于“視圖(View)”的條目中,哪一條是不正確的?( B)
A) 視圖是外模式 B)使用視圖可以加快查詢語句的執行速度
C) 視圖是虛表 D) 使用視圖可以簡化查詢語句的編寫
25、 SQL語言集數據查詢、數據操縱、數據定義和數據控制功能于一體,語句INSERT、DELETE、
UPDATE實現哪類功能?(B )
A) 數據查詢 B) 數據操縱 C) 數據定義 D) 數據控制
26、在數據庫管理系統中,下面哪個模塊不是數據庫存取的功能模塊?( A)
A) 事務管理程序模塊
B) 數據更新程序模塊 D) 查詢處理程序模塊 C) 交互式程序查詢模塊
27、SQL查詢語句中,用于測試子查詢是否為空的謂詞是(A)。
A、EXISTS B、UNIQUE C、SOME D、ALL
28、下列SQL語句中,插入數據的是(D )。
A、CREATE B、ALTER C、UPDATED、INSERT
29、 在下面所列出的條目中,哪些是數據庫管理系統的基本功能?(D )
、.數據庫定義
、.數據庫存取
A) Ⅰ和Ⅱ Ⅱ.數據庫的建立和維護 Ⅳ.數據庫和網絡中其他軟件系統的通信 D) 都是 B) Ⅰ、Ⅱ和Ⅲ C) Ⅱ和Ⅲ
30、當修改基本數據時,下列關系視圖的說法正確的是(B )
A、需要重建 B、查以看到修改結果
C、無法看到修改結果式 D、不許修改帶視圖的基表
31、 在數據庫管理系統的層次結構中,由高級到低級的層次排列順序為(D )
A) 應用層、數據存取層、數據存儲層、語言翻譯處理層
B) 應用層、數據存儲層、數據存取層、語言翻譯處理層
C) 應用層、數據存儲層、語言翻譯處理層、數據存取層
D) 應用層、語言翻譯處理層、數據存取層、數據存儲層
32、在SQL語言的SELECT語句中,實現投影操作的是( A )子句。
A、select B、fromC、where D、grou by
33、SQL中,“AGE IN(20,22)”的語義是( D )。
A)AGE<=22 and="" age="">=20B)AGE<22 and="" age="">20
C)AGE =20 AND AGE =22 D)AGE =20 OR AGE =22
34 SQL中,聚合函數COUNT(列名)用于( C )
A.計算元組個數B.計算屬性的個數
C.對一列中的非空值計算個數 D.對一列中的非空值和空值計算個數
35、Transact-SQL對標準SQL的擴展主要表現為(A )。
A. 加入了程序控制結構和變量 B. 加入了建庫和建表語句
C. 提供了分組(Group By)查詢功能 D. 提供了Min、Max統計函數
36、已知關系:廠商(廠商號,廠名) PK=廠商號
產品(產品號,顏色,廠商號) PK=產品號,FK=廠商號
假設兩個關系中已經存在如圖所示元組:
廠商產品
若再往產品關系中插入如下元組:
I(P03,紅,C02) II(P01,藍,C01)
III(P04,白,C04) IV(P05,黑,null)
能夠插入的元組是( D )
A I,II,IV B I,IIIC I,IID I,IV
37、設有一個關系:DEPT(DNO,DNAME),如果要找出倒數第三個字母為W,并且至少包含4個字母的DNAME,則查詢條件子句應寫成WHERE DNAME LIKE ( B )
A ‘_ _ W _ %’B ‘_ % W _ _’C ‘_ W _ _’ D ‘_ W _ %’
38、下列SQL語句中,修改表結構的是(D )。
A、CREATE B、INSERT C、UPDATED、ALTER
39、SQL語句通常稱為( A)。
A、結構化查詢語言 B、結構化控制語言
C、結構化定義語言 D、結構化操縱語言
40、SQL語言的一體化特點主要是與( B)相比較而言的。
A、操作系統命令 B、非關系模型的數據語言C、高級語言D、自然語言
41、SQL語言中,刪除一個表的命令是( B )
A、 DELETE table B、DROP tableC、 CLEAR tableD、 REMORE table
42、在基表S中查詢所有姓名中有“國”的學生,在WHERE子句中應使用( A)通配符。
A. LIKE ’%國%’ B. LIKE ‘%國_’ C. LIKE ’_國%’ D. LIKE ‘_國_’
43、下列哪個不屬于數據庫對象(B )
A、默認B、SELECT語句 C、存儲過程 D、視圖
44、下列那一個不屬于SQL SERVER工具(A )
A數據庫管理器 B、事件探查器 C、導入和導出數據 D、查詢分析器
45、 下列那一個不屬于企業管理器的功能(D )
A、注冊服務器 B、配置本地和遠程服務器
C、引入和導出數據D、為WINDOWS創建操作系統用戶
46、關于SQL Server文件組的敘述正確的是:( A )。
A、一個數據庫文件不能存在于兩個或兩個以上的文件組里
B、日志文件可以屬于某個文件組
C、文件組可以包含不同數據庫的數據文件
D、一個文件組只能放在同一個存儲設備中
47、下面關于外碼的描述中,不正確的是(C )。
A. 外碼體現了關系間的聯系手段B. 外碼是某個關系的碼
C. 外碼不是任何關系的碼
D. 外碼是一個關系的碼同時是另一個關系的屬性
48、在SQL Server 中關于索引敘述正確的是:( B )。
A、每個數據庫表可以建立多個聚集索引B、每個表可以定義多個非聚集索引
C、索引的數據保存在同一個表中D、索引不會改變表中的數據
49、關于索引描述錯誤的是以下的哪一個?( A)
A、表中的任何數據列都可以添加索引
B、創建索引的列最好不要含有許多重復的值
C、一般不給很少使用的列添加索引
D、并不是數據庫中聚集索引越多搜索效率就越高
50、關于存儲過程的描述正確的一項是:( C )。
A、存儲過程的存在獨立于表,它存放在客戶端,供客戶使用
B、存儲過程只是一些T-SQL語句的集合,不能看作SQL Server的對象
篇三:數據庫作業(答案)
《數據庫原理與應用》綜合設計任務書
前言
《數據庫原理與應用》課程的重點知識模塊包括:1)數據庫設計、2)用SQL實現建庫、建表、查詢、更新、和創建視圖、3)存儲過程和觸發器設計。針對這三個應用能力,用一個案例作為背景,布置三次大作業。
在校大學生都能理解“圖書管理系統”的應用場合和業務流程。因此,以圖書管理系統作為案例來布置作業,可以降低業務分析難度,讓學生將主要精力放在知識消化與技術應用上。
本文檔包括四個部分。第一部分描述系統的需求,第二部分提出E-R模型設計和關系模型設計的任務;第三部分提出在SQL Server中,用SQL語句來建庫、建表、查詢、更新數據、創建視圖的任務;第四部分,根據應用需求、安全需求和數據完整性要求,提出設計存儲過程和觸發器的任務。 每個任務之前,都給出了完成任務所需要掌握的關鍵知識點,學生可以在對這些知識點進行復習的基礎上完成任務,每個任務是一次大作業。
第一部分案例的需求描述
本部分描述“圖書管理系統”的需求,學生通過閱讀本部分內容,了解系統的功能要求、運行環境,對系統所需的數據有總體認識,作為三次作業的基礎。
1.2 需求分析 1)功能需求
圖1-1:功能需求示意圖
教師信息管理:用于教師基本資料的增刪改查。
圖書信息管理:用于圖書基本信息的增刪改查,分類統計圖書冊數和價值。 借書登記:記錄借書時間、所借圖書、借書人、辦理人。 還書登記:記錄還書時間、所還圖書、還書人、辦理人。
催還:查詢借閱逾期的借書信息,給借書人發電子郵件,給借書人的部門打電話。 2)運行環境要求
圖1-2:運行環境拓撲圖
系統采用C/S模式,有兩臺PC和一臺服務器,聯成一個局域網。PC上安裝圖書管理軟件的客戶端,服務器上安裝DBMS,服務器也可由兩臺PC中的一臺來代替。
第二部分 作業1——E-R模型與關系模型設計
(滿分8分)
本部分的任務是:在需求分析的基礎上,進行E-R圖設計,然后將E-R模型轉換為關系模型。 任務: 1) 2)
根據需求描述,繪制E-R圖。
將E-R圖轉換成關系模型,寫出所有的關系模式,并寫出每一個關系是按照什么規則轉換而成的。
3) 在已經形成的關系模型下,舉例說明連接運算、投影運算、選擇運算。 參考答案:(屬性寫在了實體和聯系圖形內) 任務:
1) 根據需求描述,分別為“圖書管理系統”的不同功能模塊繪制局部E-R圖。 教師信息管理:
圖書基本信息管理:
借還書登記:
催還書登記:
2) 整體E-R圖
3) 關系模式
? 類型表(類型名,借閱期限),依據:實體轉換為關系。
? 圖書表(,書名,作者,出版社,出版時間,單價,類型名,狀態),依據:
實體轉換為關系,1:N的聯系合并到N,在N方增加一個外鍵: 類型名。注:狀態屬性為(庫存,借出)
? 管理員表() ,依據:實體轉換為關系。
? 教師表(教師工號,姓名,性別,Email,部門名), 依據:實體轉換為關系,1:N的聯系合并
到N,在N方增加一個外鍵: 部門名。
? 部門表(部門名,電話),依據:實體轉換為關系。
? 借還表(ISBN,教師工號,借辦理人,借出日期,還辦理人,歸還日期),依
據,M:N聯系轉換為一個關系,取聯系的實體的鍵加聯系屬性作為其屬性,可以增加一個列作為主鍵。
? 催還表(ISBN,教師工號,辦理人,催還日期),依據,M:N聯系轉換為一個
關系,取聯系的實體的鍵加聯系屬性作為其屬性,可以增加一個列作為主鍵。 4) 在已經形成的關系模型下,舉例說明連接運算、投影運算、選擇運算。
連接運算:查看類型的圖書已經超過了有效借出期限。(需要圖書,類型,借還關系) 投影運算:查看圖書的書名、作者。 選擇運算:查看單價高于50元的圖書。
附:自底向上設計概念結構的方法
通常分為兩步:第一步:首先要根據需求分析的結果(數據流圖、數據字典等)對現實世界的數據進行抽象,設計各個局部視圖即分E-R圖。 第二步:集成局部視圖。
設計分E-R圖的步驟是:選擇局部應用在需求分析階段,通過對應用環境和要求進行詳盡的調查分析,逐一設計分E-R圖,實體的屬性、標識實體的碼實際上實體與屬性是相對而言的,很難有截然劃分的界限。同一事物,在一種應用環境中作為"屬性",在另一種應用環境中就必須作為"實體"。一般說來,在給定的應用環境中:屬性不能再具有需要描述的性質。即屬性必須是不可分的數據項。
合并分E-R圖,生成初步E-R圖。各分E-R圖之間的沖突主要有三類:屬性沖突、命名沖突和結構沖突。。解決方法是根據應用的語義對實體聯系的類型進行綜合或調整。 修改與重構,生成基本E-R圖分E-R圖經過合并生成的是初步E-R圖。之所以稱其為初步E-R圖,是因為其中可能存在冗余的數據和冗余的實體間聯系,即存在可由基本數據導出的數據和可由其他聯系導出的聯系。冗余數據和冗余聯系容易破壞數據庫的完整性,給數據庫維護增加困難,因此得到初步E-R圖后,還應當進一步檢查E-R圖中是否存在冗余,如果存在,應設法予以消除。
【結構化查詢語言SQL習題與答案】相關文章:
SQL查詢語句大全10-24
sql語句的各種模糊查詢08-25
Oracle的sql語句模擬試題及答案10-12
CAD習題及答案01-15
java習題及答案10-25
用SQL實現查詢數據不顯示錯誤數據的方法08-19
java考試習題及答案07-27
2016計算機二級c語言習題及答案07-05
網絡技術習題及答案05-20