《数据库系统原理》复习题(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库系统原理》复习题(答案)
(一)填空题
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 、UPDA TE)
(二)单项选择题
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、文件组织
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
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 )。
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、在哪几种情况下,视图名之后必须给出视图列名列表?
答:以下三种情况,视图名之后必须给出视图列名列表:
(1)子查询语句中某个目标列不是属性名,而是计算函数或列表达式时;
(2)多表连接时选出了几个同名列作为视图的字段时;
(3)需要在视图中为某个列选用新的更合适的列名时。
5、定义角色有何作用? 举例说明。
答:定义角色主要是便于对权限相同的一组用户,进行统一的权限管理,提高管理效率。
举例(略)
五、操作题
设有如下关系模式:
学生(学号C,姓名C,性别C,出生日期D,专业C,奖学金N)成绩(学号C, 课程名C, 成绩N)
其中:字段名后的C表示该字段为字符型,N表示该字段为数值型。
请按照下列要求写出正确的SQL语句。
1.用SQL语言中的CREATE命令创建学生表。
create table 学生(学号char(8) primary key,
姓名varchar(8),
性别char(2),
出生日期datetime,
专业varchar(50),
奖学金int )
2.用SQL语句写出往成绩表中插入一个新记录(‘20090001’,‘数据库原理及应用’,90)。
insert into 成绩values('20090001','数据库原理及应用',90)
3.检索“计算机应用”专业的学生学号、姓名、性别、年龄、专业和奖学金。
select 学号,姓名,性别,datediff(year,出生日期,getdate()) as 年龄,专业,奖学金
from 学生where 专业='计算机应用'
4.将“计算机网络”专业的学生,奖学金修改为800元。
update 学生set 奖学金=800 where 专业='计算机网络'
5.查找学生中姓“肖”的学生,列出其姓名、专业。
select 姓名,专业from 学生where 姓名like '肖%’
6.查询成绩在75分以上的学生信息。
select * from 学生where 学号in
(select 学号from 成绩where 成绩>75)
7.查询每个学生的平均成绩。
select 学号,avg(成绩) from 成绩group by 学号
8. 查询选修了“计算机基础”课程,但无成绩的学生,列出学号、姓名、专业。
select 学生.学号, 姓名, 专业from 学生left join 成绩
on 学生.学号=成绩.学号where 成绩is null and 课程名='计算机基础'。