您的当前位置:首页正文

《数据库系统原理》复习题(答案)

2021-04-02 来源:易榕旅网
(一)填空题

1. 数据管理经历了_______阶段、________阶段到________阶段的变迁。(手工管理、 文件管理、数据库管理)

2. 实体之间联系的基本类型有______、_______、_______。(一对一、一对多、多对多)

3. 在E-R图中,用____表示实体,用______表示联系,用______表示属性。(矩形框、菱形框、椭 圆框)

4. 数据库的三层模式结构是________、_________、_______。(外模式、逻辑模式、内模式) 5. 关系模型中一般讲数据完整性分为三类:_________、___________、__________。 (实体完整性、参照完整性、用户定义完整性)

6. 数据模型由三部分组成:数据结构、数据操作和____________。(数据的约束条件或数据完整性 规则)

7. SQL语言是一种标准的数据库语言, 包括数据的查询、定义、操纵和______四部分功能。(控制) 8. 视图是从其它________或视图导出的虚表。(基本表)

9. 在关系模式 R 中,若属性或属性组 X 不是关系 R 的关键字,但 X 是其他关系模式的关键字, 则称 X 为关系 R 的___________。(外关键字)

10. 访问SQL server数据库对象时,需要经过身份验证和_________两个阶段,其中身份验证分为Windows验证模式和_______验证模式。(权限验证、混合)

11. _______是存储在文件中的一系列SQL语句,即一系列按顺序提交的批处理。(脚本) 12. SQL语言中行注释的符号为_________;块注释的符号为_________。(--、/**/)

13. SQL server中的变量分为两种,全局变量和局部变量。其中全局变量的名称以_______字符开始,有系统定义和维护。局部变量以__________字符开始,由用户自己定义和赋值。(@@、@)

14. 在SQL server中,其权限分为三类,即_________权限、_________权限和_________权限。(对象、语句、隐含)

15. 用户对数据进行添加、修改和删除时,自动执行的存储过程称为_________。(触发器) 16. 角色是一组用户所构成的组,可以分为服务器角色和_______角色。(数据库)

17. 触发器有3种类型,即INSERT类型、_______和_______。(UPDATE类型、DELETE类型) 18. 如果要计算表中的行数,可以使用聚合函数______。(COUNT())

19. 在SQL Server中修改表的结构应使用关键字 ,修改表中的数据应使用关键字 。(ALTER 、UPDATE)

(二)单项选择题

1. 一个仓库可以存放多种产品,而一种产品只能存放于一个仓库中。仓库与产品之间的联系类型是 (C )。

A、一对一的联系 B、多对一的联系 C、一对多的联系 D、多对多的联系

2. 不属于传统数据模型的是(D)。

A、层次数据模型 B、网状数据模型 C、关系数据模型 D、面向对象数据模型

3. 声明了变量:declare @i int,@c char(4),现在为@i赋值10,为@c赋值'abcd', 正确的语句是(C)。 A、set @i=10,@c='abcd' B、set i=10 , set @c='abcd'

C、select @i=10,@c='abcd' D、select @i=10, select @c='abcd'

4. 长期存储在计算机内的有组织、可共享的数据集合是(C)。

A、数据库管理系统 B、数据库系统 C、数据库 D、文件组织

1

5. 数据库系统不仅包括数据库本身,还要包括相应的硬件、软件和(D)。 A、数据库管理系统 B、数据库应用系统 C、相关的计算机系统 D、各类相关人员

6. 数据库系统软件包括DBMS和(D)。

A、数据库 B、高级语言 C、OS D、数据库应用系统和开发工具

7. 在SQL语言中授权的操作是通过(C)语句实现的。

A、CREATE B、REVOKE C、GRANT D、INSERT

8. 数据库中只存放视图的(C)。

A、操作 B、对应的数据 C、定义 D、限制

9. 概念结构设计阶段得到的结果是(B)。

A、数据字典描述的数据需求 B、E-R图表示的概念模型

C、某个DBMS所支持的数据模型 D、包括存储结构和存取方法的物理结构

10. 一个m:n联系转换为一个关系模式。关系的码为(B)。 A、某个实体的码 B、各实体码的组合 C、n端实体的码 D、任意一个实体的码

11. (A)是位于用户和操作系统之间的一层数据管理软件。数据库在建立、使用和维护 时由其统一管理、统一控制。

A、DBMS B、DB C、DBS D、DBA

12. SQL语言允许使用通配符进行字符串匹配,其中‘%’可以表示(D )。 A、零个字符 B、1个字符 C、多个字符 D、以上都可以

13. 表在数据库中是一个非常重要的数据对象,它是用来( C )各种数据内容的。 A、显示 B、查询 C、存放 D、检索

14. 在SQL Server服务器上,存储过程是一组预先定义并( B )的T-SQL语句。 A、保存 B、编译 C、解释 D、编写

15. 下列哪个约束不可以为空?(A)

A.、主键 B、外键 C、默认键 D、UNIQUE约束

16. 下列特点哪一项是视图所不具备的?( D) A、分割数据,屏蔽用户所不需要浏览的数据

B、提高应用程序和表之间的独立性,充当程序和表之间的中间层 C、降低对最终用户查询水平的要求 D、提高数据的网络传输速度

17. 在通常情况下,下列哪个对象不是数据库对象?( D ) A、View B、Table C、Rule D、Word

2

18. 不属于SQL Server系统全局变量的是( D )。

A、@@Error B、@@Connections C、@@Fetch_Status D、@Records

19. Transact-SQL支持的程序结构语句中的一种为( A )。 A、Begin…End B、If…Then…ELSE C、Do Case D、Do While

20. SQL语言中,删除一个视图的命令是(B )。

A、DELETE B、DROP C、CLEAR D、REMOVE

21. 下列的SQL语句中,( D )不是数据定义语句。

A、CREATE TABLE B、DROP VIEW C、CREATE VIEW D、GRANT

22. 下列哪个关键字在SELECT 语句中表示所有列:(A) A、* B、ALL C、DESC D、DISTINCT

23. 数据查询语句SELECT的语法中,必不可少的子句是( B )。

A、SELECT和WHERE B、SELECT和FROM C、FROM D、SELECT

24. SQL数据定义语言中,表示外码约束的关键字是( B )。

A、UNIQUE B、FOREIGN KEY C、PRIMARY KEY D、CHECK

25. 下列哪个统计函数可以计算平均值?(B) A、sum B、avg C、count D、min

26. 下列说法中正确的是( D )。

A、SQL中局部变量可以不声明就使用; B、SQL中全局变量必须先声明再使用; C、SQL中所有变量都必须先声明后使用;

D、SQL中只有局部变量先声明后使用,全局变量是由系统提供的用户不能自己建立。

27. SQL Server的字符型系统数据类型主要包括( B )。 A、Int、money、char B、char、varchar、text C、datetime、binary、int D、char、varchar、int

28. SELECT语句中与HAVING子句通常同时使用的是( C )子句。

A、ORDER BY B、WHERE C、GROUP BY D、无需配合

29. 在WHILE循环语句中,如果循环体语句条数多于一条,必须使用( A )。 A、 BEGIN…END B、CASE…END C、IF…HEN D、GOTO

30. SELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是( A )。 A、ORDER BY B、WHERE C、GROUP BY D、HAVING

31. 数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者的关系,正确的表达是( B 3

)。

A、DB和DBS都是DBMS的一部分 B、DBMS和DB都是DBS的一部分 C、DB是DBMS的一部分 D、DBMS包括数据库系统和DB

32. 数据库三级模式体系结构的划分,有利于保持数据库的( A )。

A、数据独立性 B、数据安全性 C、结构规范化 D、操作可行性

33. 关系模型中,表中的一行称为( C )。

A、主键 B、实体 C、记录 D、属性

34. 删除一个表,正确的SQL语句是( C )。

A、DROP 表名 B、ALTER TABLE 表名 C、DROP TABLE 表名 D、ALTER 表名

35. 使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当( B )。 A、使用WHERE子句 B、在GROUP BY后面使用HAVING 子句 C、先使用WHERE子句,再使用HAVING 子句。 D、先使用HAVING 子句,再使用WHERE子句。

三、判断题

( √ )1. 视图可以提高应用程序和表之间的独立性,充当程序和表之间的中间层。 ( × )2. SELECT语句中WHERE 子句和HAVING子句的作用是一致的。 ( √ )3. 建立基本表分两步:定义表结构和输入数据。 ( √ )4. 列级约束和表级约束都可以用于定义外码约束。 ( × )5. 在查询中很少被引用的列上创建索引可以极大的提高查询性能。

( √ )6. 如果使用别名来代表一个表,那么在定义别名后的所有查询语句中,都必须使用别名来代表表的全名,否则系统会出错。 ( × )7. 在关系数据库中,表中记录的顺序不能互换。

( √ )8. 当登录到WINDOWS的用户与SQL Server连接时,用户不用提供SQL Server帐号,这种认证模式就是WINDOWS认证机制。

四、简答题

1、什么是列级完整性约束?什么是列级完整性约束?

答:在定义表时,于列名与数据类型之后给出的约束称列级约束。在一个表的全部列说明完之后,单独说明的约束称作表级约束。

2、数据完整性定义有哪几类?其一般规则如何?

答:数据完整性定义有三类,它们是实体完整性、参照完整性和用户定义完整性。

实体完整性要求关系中元组的主码值不能为空值。

参照完整性是定义外码与主码之间的引用和参照规则,参照关系的外码取值不能超出被参照关系的主码取值,即为空值或等于被参照关系中某个主码值。

用户定义完整性是针对某一具体关系数据库进行的条件约束。 3、一个数据库中需要定义6个表,其中有两个表有外码。在建数据库时,各表的定义是否可以随意安排?正确的做法应当如何安排?为什么?

答:当新建数据库时,有外码的表应当在引用表定义之后定义;否则,在执行创建语句时,找不到引用表,系统会视为错误。引用无效,导致语句不能执行。

4

4、在哪几种情况下,视图名之后必须给出视图列名列表? 答:以下三种情况,视图名之后必须给出视图列名列表:

(1)子查询语句中某个目标列不是属性名,而是计算函数或列表达式时; (2)多表连接时选出了几个同名列作为视图的字段时; (3)需要在视图中为某个列选用新的更合适的列名时。

5、定义角色有何作用? 举例说明。

答:定义角色主要是便于对权限相同的一组用户,进行统一的权限管理,提高管理效率。举例(略)

五、操作题

设有如下关系模式:

学生(学号C,姓名C,性别C,出生日期 D,专业C,奖学金N) 成绩(学号C, 课程名C, 成绩N)

其中:字段名后的C表示该字段为字符型,N表示该字段为数值型。

请按照下列要求写出正确的SQL语句。

1.用SQL语言中的CREATE命令创建学生表。

2.用SQL语句写出往成绩表中插入一个新记录(‘20090001’,‘数据库原理及应用’,90)。 3.检索“计算机应用”专业的学生学号、姓名、性别、年龄、专业和奖学金。 4.将“计算机网络”专业的学生,奖学金修改为800元。 5.查找学生中姓“肖”的学生,列出其姓名、专业。 6.查询成绩在75分以上的学生信息。 7.查询每个学生的平均成绩。

8. 查询选修了“计算机基础”课程,但无成绩的学生,列出学号、姓名、专业。

参考答案如下:

1. create table 学生 (学号 char(8) primary key, 姓名 varchar(8), 性别 char(2),

出生日期 datetime, 专业 varchar(50), 奖学金 int )

2. insert into 成绩 values('20090001','数据库原理及应用',90)

3. select 学号,姓名,性别,datediff(year,出生日期,getdate()) as 年龄,专业,奖学金 from 学生 where 专业='计算机应用'

4. update 学生set 奖学金=800 where 专业='计算机网络'

5. select 姓名,专业 from 学生 where 姓名 like '肖%’

6. select * from 学生where 学号 in

(select 学号 from 成绩 where 成绩>75)

5

7. select 学号,avg(成绩) from 成绩group by 学号

8. select 学生.学号, 姓名, 专业 from 学生 left join 成绩

on 学生.学号=成绩.学号where 成绩 is null and 课程名='计算机基础'

6

因篇幅问题不能全部显示,请点此查看更多更全内容