SQL Server 2000实用教程(第二版)习题参考答案

更新时间:2023-05-27 14:33:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SQL Server 2000实用教程(第二版)习题参考答案

SQL Server 2000实用教程(第二版)

作者:周力

习题参考答案

第1章 SQL Server 数据库基础

一、单项选择题

1.A、D 2. C 3. B 4.B 5.D 6. C 7.A 8. C

二、填空题

1. 数据之间的联系

2. 域完整性、参照完整性(或称引用完整性)

3. 数据表中某一列或某几列的组合,其值可唯一地标识表中的每一条记录。 不允许 一个

4. 学号 课程编号 课程编号

5. 1:n (或n:1) n :m

6. 空值 不应

7. 新的用户登录服务器 已连接到服务器的用户继续作业

8. 利用索引进行查找 特定查找 按书签查找

三、简答题

1. 数据库是以一定的组织形式存放在计算机中的相关数据的集合。数据库系统是指在计算机系统中引入数据库后的一个完整的应用系统。包括数据库、数据库管理系统、应用程序以及用户等。在大型数据库系统中,还专门设有数据库管理员(DBA)。

数据库管理系统是帮助用户建立、使用和管理数据库的计算机软件。其功能包括数据定义、数据操作、数据库运行控制、数据库维护等。

2. 唯一约束和主键约束的区别主要有以下几点:第一,设置主键约束的字段其值不允许为空(NULL),但设置唯一约束的字段无此要求。第二,一个表只允许设置一个主键约束,但允许设置多个主键约束。此外,在SQL Server 2000中,设置唯一约束和主键约束都需创建唯一索引。默认情况下,主键约束产生聚集索引,而唯一约束产生非聚集索引(关于聚集索引和非聚集索引的概念将在第3章讨论)。

3. (见1.3.1节)

第2章 数据库的创建与管理

一、单项选择题

1.C、B 2. D、A 3. B 4.B、C 5.C

二、多项选择题

SQL Server 2000实用教程(第二版)习题参考答案

1.1)2)3)4)6)

2.1)2)4)8)

三、填空题

1.master tempdb model

2.工具 F5

3.表格 . sql

4.ALTER DATABASE REMOVE FILE

5.数据文件或日志文件有大量的可用空间 数据库增长的部分

第3章 数据表和索引

一、单项选择题

1.D 2. B、A、D 3. C 4.D 5.C 6.A、B

二、多项选择题

1.1)3)4)5)7)

2.3)4)5)6)

三、填空题

1.1 1 任意

4. image sql_variant

5. dicimal (7,2) numeric (7,2)

6. timestamp

7. 全局变量 局部临时表

8. 1 249

9. 索引页叶级 100

10. 查询检索 修改维护

四、简答题

1. 主键约束或唯一性约束,检查约束或规则,指定默认值或不允许字段为空等。

2. 规则与CHECK约束的区别主要有以下几点:(1)CHECK约束是用CREATE TABLE语句在建立表时指定或用ALTER TABLE语句在修改表时添加的,而规则是以单独的数据库对象形式创建,然后将它绑定到数据表中的列上;

(2)在一个列上只能使用一个规则,但可以使用多个CHECK约束;(3)一个规则可以应用于多个列,而一个CHECK约束只能应用于它所定义的列上;(4)规则还可以应用于用户自定义的数据类型上。

3. DELETE语句用于删除表中的一条或多条记录;而DROP TABLE语句用于删除整个表。

SQL Server 2000实用教程(第二版)习题参考答案

第4章 数据库查询

一、单项选择题

1.B 2. D 3. D 4.D 5.D 6.C 7.C 8.D

二、填空题

1.聚合函数 聚合函数 ORDER BY

2.FROM WHERE

3.自联接 对同一个表分别设定不同的别名

4. 左外联接 右外联接 全外联接

5. % _ [ ]

6. UNION 第一个

7. EXISTS NOT EXISTS

8. 所引用的数据表 允许

三、操作题

1.USE teachdb

SELECT c_name AS 课程名称,c_score AS 学分

FROM course WHERE c_name LIKE '%数%'

2.USE teachdb

SELECT s_name AS 姓名,s_department AS 专业,'现在年龄' AS ' ',

YEAR(GETDATE())-YEAR(s_birthday) AS 年龄

FROM student WHERE s_birthday>='1982-10-01' ORDER BY s_birthday

(注:教材中本题目有打印错误。第二列应为s_department,漏了字母.

t)

3.USE teachdb

SELECT t_name,c_no INTO inquire

FROM teacher JOIN teaching ON teacher.t_no=teaching.t_no

4.USE teachdb

SELECT c_name AS 课程名,s_no AS 选修同学

FROM choice RIGHT JOIN course ON choice.c_no=course.c_no

(注:教材中本题目有打印错误。选修该课学生的学号字段应为s_no)

5.USE teachdb

GO

CREATE VIEW V_EM1

AS

SELECT c_name AS 课程名,s_no AS 选修同学

FROM choice RIGHT JOIN course ON choice.c_no=course.c_no

SQL Server 2000实用教程(第二版)习题参考答案

6.USE teachdb

SELECT 课程名称=c_name,学生姓名=s_name,成绩=score

FROM course,choice,student

WHERE course.c_no=choice.c_no AND student.s_no=choice.s_no

AND course.c_name='数据结构'

AND choice.score>(select AVG(score) FROM choice,course

WHERE choice.c_no=course.c_no AND course.c_name='数据结构')

7.USE test1

SELECT 员工姓名 AS 职工姓名,项目名称 AS 所负责项目

FROM project RIGHT JOIN employees ON project.项目负责人=employees.员工姓名

USE test1

SELECT 员工姓名 AS 职工姓名,项目名称 AS 所负责项目

FROM project,employees WHERE project.项目负责人=*employees.员工姓名

(注:教材中对本题至第10题所依据的test1数据库及相关表的说明有误,应参考第2章和第3章的课后练习题) ..

8.USE test1

SELECT 员工姓名 ,工资

FROM employees WHERE 工资 IS NOT NULL

ORDER BY 工资 DESC COMPUTE AVG(工资)

9.USE test1

SELECT TOP 1 项目名称,项目负责人,工资

FROM project,employees WHERE project.项目负责人=employees.员工姓名

ORDER BY 工资 DESC

10.USE test1

GO

CREATE VIEW V_EM2 WITH ENCRYPTION

AS

SELECT TOP 100 PERCENT 员工姓名,工资

FROM employees WHERE 工资 IS NOT NULL

ORDER BY 工资 DESC

说明:本题SELECT语句中的TOP 100 PERCENT表示取结果集中的100%记录。因为题目中要求按工资排序,但在SQL Server 2000中,除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。

SQL Server 2000实用教程(第二版)习题参考答案

第5章 Transact-SQL 程序设计

一、单项选择题

1.A 2. C 3. C 4.C、D 5.D 6.B、C 7.D 8.D 9.D、C 10.B

二、多项选择题

1.2)3)4)5)

2.1)2)3)4)5)7)

三、填空题

1.DECLARE @X MONEY SET @X=500 SELECT @X=500

2.3.142

3.219.00

4.交 大

5.master sp_ 系统存储过程

6.输入 输出 返回

7.在CREATE PROCEDURE语句创建存储过程时使用WITH RECOMPILE选项

在用EXECUTE命令执行存储过程时使用WITH RECOMPILE选项

8.AFTER INSTEAD OF

9. inserted deleted 修改前的记录插入deleted表,修改后的记录插入inserted表

10.ALTER TABLE Orders DISABLE TRIGGER OrderInsert

四、简答题

1.@@x不是一个全局变量。因为全局变量是SQL Server系统内部使用的变量,它是一组由SQL Server事先定义好的变量。尽管@@x的命名符合SQL Server全局变量的命名规定,但SQL Server系统不认识它。

2.不完全相同。因为先删除原存储过程,然后再创建同名的存储过程后,在原来存储过程上设置的权限将全部丢失。

3.使用游标基本步骤:声明游标→打开游标→读取数据→关闭游标→删除游标。

五、操作题

1.USE teachdb

DECLARE @sex CHAR(2)

SET @sex='女'

SELECT s_no,s_name FROM student WHERE s_sex=@sex

2.DECLARE @avg REAL

USE teachdb

SELECT @avg=AVG(score) FROM choice JOIN course

ON choice.c_no=course.c_no WHERE course.c_name='数据结构'

SQL Server 2000实用教程(第二版)习题参考答案

IF @avg>80 PRINT '数据结构平均分高于80分'

3.USE teachdb

GO

IF EXISTS(SELECT name FROM sysobjects WHERE name='proc1' AND type='P')

DROP PROCEDURE proc1

GO

CREATE PROCEDURE proc1

@student_no CHAR(4)

AS

SELECT student.s_no,s_name,c_name FROM student,choice,course

WHERE student.s_no=choice.s_no AND course.c_no=choice.c_no

AND student.s_no=@student_no

GO

EXEC proc1 101

EXEC proc1 102

4.USE teachdb

IF EXISTS(SELECT name FROM sysobjects

WHERE name='trig1' AND type='TR')

DROP TRIGGER trig1

GO

CREATE TRIGGER trig1 ON teaching

AFTER INSERT

AS

IF EXISTS(SELECT * FROM teaching

WHERE teaching.t_no NOT IN(SELECT teacher.t_no

teacher) OR teaching.c_no NOT IN(SELECT course.c_no

course))

BEGIN

RAISERROR('违背数据的一致性,不允许插入',16,1)

ROLLBACK TRANSACTION

END

5.USE teachdb

GO

CREATE FUNCTION sum_m(@m AS int)

RETURNS int

BEGIN FROM FROM

SQL Server 2000实用教程(第二版)习题参考答案

DECLARE @s int,@i int

SET @s=0

SET @i=1

WHILE @i<=@m

BEGIN

SET @s=@s+@i

SET @i=@i+1

END

RETURN @s

END

说明:函数创建后,可用以下语句测试函数的功能:

SELECT dbo.sum_m(4) AS '1+2+3+4'

SELECT dbo.sum_m(100) AS 'SUM(1~100)'

SELECT dbo.sum_m(-5)

第6章 数据库安全性管理

一、单项选择题

1.B、D 2. C 3. B 4.D 5.D、B 6.A 7.D 8.A 9.A、D 10.B

二、填空题

1.Windows认证 SQL Server认证

2.对象权限 语句权限 隐含权限

3.1~128 不能

4.BUILTIN \Administrators sa

5. dbo guest

6. master sysxlogins 用户 sysprotects

7.服务器 应用程序 固定数据库角色 自定义数据库角色

8. msdb

9.本地或网络硬盘文件 磁带

10.差异备份 日志备份 完全数据库备份

三、简答题

1. sp_revokelogin 可禁止指定的Windows NT/2000 用户通过其 Windows用户帐号进行连接。但是,如果被禁止的该用户是 Windows NT/2000 组的成员,且该组由 sp_grantlogin 授予了对 SQL Server 的访问权限,则该 Windows NT/2000 用户仍然可以连接到SQL Server。使用 sp_denylogin 则可显式禁止用户连接到 SQL Server,不论其Windows NT/2000 组成员资格如何。

2. (见6.3.1-1节)

3. (见6.4.3节)

SQL Server 2000实用教程(第二版)习题参考答案

第7章 数据库管理高级应用

一、简答题

4. 事务是SQL Server 2000 中的一个逻辑单元。SQL Server 2000中的事务模式分为显式事务、隐式事务和自动事务模式。

5. (见7.1.1节)

6. 锁作为一种安全机制,用以控制多用户的并发操作,可以防止用户读取正在由其他用户更改的数据或者多个用户同时修改同一数据,从而确保事务完整性和数据库一致性。

SQL Server 2000的锁模式有共享锁、排它锁、修改锁、意向锁、结构锁和大容量修改锁等。

7. (见7.2.1节-1)

8. (见7.2.1节-2)

9. (见7.2.1节-3)

10. (见7.3.2节)

11. 一个作业步骤可以是可执行的程序、Windows命令、Transact SQL语句以及Active X 脚本等。

12. (见7.4.1-1(2)节)

13. 警报分(1)事件警报———监控特定的事件发生或响应特定的错误出现;(2)性能警报———监视系统的性能状况。

创建一个警报的操作见7.4.2节。

本文来源:https://www.bwwdw.com/article/ywb4.html

Top