结构化查询语言SQL习题与答案

时间:2020-11-11 10:00:19 SQL 我要投稿

结构化查询语言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 入校总分ASC

  B)SELECT * FROM 学生表 ORDER BY 入校总分DESC

  C)SELECT * FROM 学生表 TOP 3 ORDER BY 入校总分ASC

  D)SELECT * FROM 学生表 TOP 3 ORDER BY 入校总分DESC

  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习题与答案】相关文章:

1.SQL语言查询基础:连接查询和联合查询

2.SQL查询语句大全

3.SQL查询语句讲解例子

4.SQL语言基础教程

5.sql语句的各种模糊查询

6.使用sql语句查询日期的方法

7.SQL语句说明与范例

8.模具设计习题与答案