SQL试题(附答案) 下载本文

《SQL数据库管理与开发教程与实训》试题(A卷)

一、单项选择题(每小题1分,共10分)

1.下列四项中,不属于数据库特点的是( C )。

A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高 2.下列四项中,不属于SQL2000实用程序的是( D )。

A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器

3.SQL Server安装程序创建4个系统数据库,下列哪个不是( C )系统数据库。

A.master B.model C.pub D.msdb

4.( A )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D.DBA 1 2 3 4 5 6 7 5. 在SQL中,建立表用的命令是 ( B )。 C D C A B A C A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX

6.SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( A )。

A.包括15岁和35岁 B.不包括15岁和35岁

C.包括15岁但不包括35岁 D.包括35岁但不包括15岁

7.下列四项中,不正确的提法是( C )。

A.SQL语言是关系数据库的国际标准语言

no 答案 B.SQL语言具有数据定义、查询、操纵和控制

1. 外模式、模式 功能

@、@@ C.SQL语言可以自动实现关系数据库的规范化 2. D.SQL语言称为结构查询语言 3. 68、C 8.在MS SQL Server中,用来显示数据库信息的系4. beautiful、我心中的太阳 统存储过程是( D )。 5. 水平、垂直 A. sp_dbhelp B. sp_db 6. 选择、投影 C. sp_help D. 7. 实体、域 sp_helpdb 8. 表、视图 9.SQL语言中,删除表中数据的命令是( A )。 9. 6、7 A. DELETE B. DROP 10 13.4300、13.4570 C. CLEAR D. REMOVE

10.SQL的视图是从( C )中导出的。

A. 基本表 B. 视图 C. 基本表或视图 D. 数据库

8 D 9 A 10 C 分 2 2 2 2 2 2 2 2 2 2 三、填空题(每空1分,共20分)

————————————————————————————————————————————

北京大学出版社 1 ISBN 7-301-10173-2/TP.0842

1.数据库系统具有数据的_外模式___、_模式________和内模式三级模式结构。

2.SQL Server 2000局部变量名字必须以_____@____开头,而全局变量名字必须以

__@@_______开头。

3.语句 select ascii('D'), char(67) 的执行结果是:_______68__和____C_____。 4.语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是:

_____beautiful_______和__我心中的太阳________。

5.选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分

割。

6.关系运算主要有________、________和连接。

7.完整性约束包括______完整性、______完整性、参照完整性和用户定义完整性。 8.在SQL Server 2000中,数据库对象包括__表____、_视图_____、触发器、过程、列、索

引、约束、规则、默认和用户自定义的数据类型等。

9.语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:_6________和

________7_。 10.语句 select round(13.4321,2), round(13.4567,3)的执行结果是:_13.4300________

和_______13.4570__。

五、设计题(共50分)

现有关系数据库如下: 数据库名:我班同学数据库

同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 宿舍表(宿舍号 char(6),宿舍电话)

用SQL语言实现下列功能的sql语句代码: 1.创建数据库[我班同学数据库]代码(2分)。 1. create database [我班同学数据库] go use [我班同学数据库] go 2 2.

2.创建数据表[宿舍表]代码(3分); 宿舍表(宿舍号 char(6),宿舍电话)

要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码 2. 3 create table 宿舍表 ([宿舍号] char(6) primary key, [宿舍电话] char(7) check([宿舍电话] like '633[0-9][0-9][0-9][0-9]'))

3.创建数据表[同学表]代码(6分);

同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)

要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别) 3. create table 同学表 (学号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in ('男', '女')), 6 ———————————————————————————————————————————— 北京大学出版社 2 ISBN 7-301-10173-2/TP.0842

年龄 int , 民族 nchar(8) default '汉族' not null, 身份证号 char(18) unique, 宿舍号 char(6) references 宿舍表(宿舍号) )

4.将下列宿舍信息添加到宿舍表的代码(8分) 宿舍号 宿舍电话 101 6331157 102 6331777

修改 宿舍号为101的 宿舍电话:6331158 删除 宿舍号为102的 宿舍信息 4. insert 宿舍表 values('101', '6331157') insert 宿舍表 values('102', '6331777') update 宿舍表 set 宿舍电话='6331158' where 宿舍号='101' delete 宿舍表 where 宿舍号='102' 8

5.创建视图[同学表视图]代码(5分);

同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话) 5. create view [同学表视图] as select 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.宿舍号, 宿舍电话 from 同学表,宿舍表 where 同学表.宿舍号=宿舍表.宿舍号 5 6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。(4分) 6. select 姓名, 性别, 宿舍电话 from 同学表视图 where 姓名 like '张%' and 性别='女' 4 7.

7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。(5分) 7. select 最大年龄 = max(年龄), 最小年龄 = min(年龄), 平均年龄 = avg(年龄) from 同学表 where 性别='女' 5 8.

8.创建带参数的存储过程[某宿舍同学]:姓名, 性别, 宿舍电话 执行此过程,查询'101'宿舍情况 (8分)

9.设置一SQL身份验证的用户账户:登录名:U班主任,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。(9分)

———————————————————————————————————————————— 北京大学出版社 3 ISBN 7-301-10173-2/TP.0842

一、 三、 五、 no 1. 参考答案 create database [我班同学数据库] go use [我班同学数据库] go 分 2 2. 3 create table 宿舍表 ([宿舍号] char(6) primary key, [宿舍电话] char(7) check([宿舍电话] like '633[0-9][0-9][0-9][0-9]')) create table 同学表 (学号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in ('男', '女')), 年龄 int , 民族 nchar(8) default '汉族' not null, 身份证号 char(18) unique, 宿舍号 char(6) references 宿舍表(宿舍号) ) insert 宿舍表 values('101', '6331157') insert 宿舍表 values('102', '6331777') update 宿舍表 set 宿舍电话='6331158' where 宿舍号='101' delete 宿舍表 where 宿舍号='102' create view [同学表视图] as select 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.宿舍号, 宿舍电话 from 同学表,宿舍表 where 同学表.宿舍号=宿舍表.宿舍号 select 姓名, 性别, 宿舍电话 from 同学表视图 where 姓名 like '张%' and 性别='女' select 最大年龄 = max(年龄), 最小年龄 = min(年龄), 平均年龄 = avg(年龄) from 同学表 where 性别='女' create procedure [某宿舍同学] @宿舍号 varchar(6) as select 姓名, 性别, 宿舍电话 from 同学表视图 where 宿舍号 = @宿舍号 go 6 3. 4. 8 5. 5 6. 4 7. 5 8. 8 ———————————————————————————————————————————— 北京大学出版社 4 ISBN 7-301-10173-2/TP.0842

execute [某宿舍同学] '101' 9. exec sp_addlogin 'U班主任', '888', '我班同学数据库' exec sp_grantdbaccess 'U班主任', 'U读者' exec sp_addrolemember 'db_datareader', 'U读者' 9

《SQL数据库管理与开发教程与实训》试题(B卷)

马建鹏 老师

一、单项选择题(每小题1分,共10分)

1. ( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户

或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 A.DBMS B.DB C.DBS D.DBA

2. 下列四项中,不属于SQL2000实用程序的是( )。

A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器

3. SQL Server安装程序创建4个系统数据库,下列哪个不是( )系统数据库。

A. master B. model C. pub D. msdb 4. 下列哪个不是sql 数据库文件的后缀。

A..mdf B..ldf C..tif D..ndf 5. 数据定义语言的缩写词为 ( )。

A.DDL B.DCL C.DML D.DBL

6. SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。

A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 7. SQL的视图是从( )中导出的。

———————————————————————————————————————————— 北京大学出版社 5 ISBN 7-301-10173-2/TP.0842

A. 基本表 B. 视图 C. 基本表或视图 D. 数据库 8. 在SQL语言中,建立存储过程的命令是()

A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE 9. SQL语言中,删除表中数据的命令是( )。

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

10. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。

A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb

三、填空题(每空1分,共20分)

1. SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以

_________开头。

2. 语句 select ascii('D'), char(67) 的执行结果是:_________和_________。

3. 语句 select lower('Beautiful') , rtrim('我心中的太阳 ') 的执行结果是:

____________和___________。

4. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______

分割。

5. 关系运算主要有________、________和连接。

6. 完整性约束包括_______完整性、______完整性、参照完整性和用户定义完整性。 7. T-SQL 语言中,有_________运算、字符串连接运算、比较运算和_________运算。 8. 语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:_________

和_________。 9. 语句 select floor(17.4), floor(-214.2), round(13.4382,2), round(-18.4562,3)

的执行结果是: _________、_________、_________和_________。

五、设计题(共45分)

现有关系数据库如下: 数据库名:学生成绩数据库

学生信息表(学号 char(6),姓名,性别,民族,身份证号) 课程信息表(课号 char(6),名称) 成绩信息表(ID,学号,课号,分数) 用SQL语言实现下列功能的sql语句代码。

1. 创建数据库[学生成绩数据库]代码(2分)。 2. 创建数据表[课程信息表]代码;(2分) 课程信息表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) 3. 创建数据表[学生信息表]代码;(4分)

学生信息表(学号 char(6),姓名,性别,民族,身份证号)

要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性

别)

4. 创建数据表[成绩信息表];(5分) 成绩信息表(ID,学号,课号,分数)

———————————————————————————————————————————— 北京大学出版社 6 ISBN 7-301-10173-2/TP.0842

要求使用:外键(学号,课号)、检查(分数),自动编号(ID) 5. 将下列课程信息添加到课程信息表的代码(8分) 课号 名称 100101 西班牙语 100102 大学英语

修改 课号为100102的课程名称:专业英语 删除 课号为100101的课程信息

6. 创建视图[成绩信息表视图]的代码;(5分)

成绩信息表视图(学号,姓名,课号,课程名称,分数)

7. 从学生信息表中查询姓刘的女同学的情况:姓名、性别、民族。(2分

8. 查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4

分)

9. 创建带参数的存储过程[某门课程高低均分]、执行该过程的代码(7分) 存储过程功能:查询某门课程的最高分、最低分、平均分;

执行该过程,查询所有修’专业英语’这门学生的最高分、最低分、平均分; 10 设置一SQL身份验证的用户账户:登录名:U院长,密码:888,数据库用户名:U读者,

权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。(6分)

———————————————————————————————————————————— 北京大学出版社 7 ISBN 7-301-10173-2/TP.0842

一、

1 A 二、 1 Y 三、

no 1. 2. 3. 4. 5. 6. 7. 8. 9. 四、 五、

no 1. 参考答案 create database [学生成绩数据库] go use [学生成绩数据库] go create table 课程信息表 ([课号] char(6) primary key, [名称] nchar(20) not null) create table 学生信息表 ([学号] char(6) primary key, [姓名] nchar(4) not null, [性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null, [身份证号] char(18) unique ) create table 成绩信息表 (ID int identity(1, 1), [学号] char(6) references 学生信息表(学号), [课号] char(6) references 课程信息表(课号), [分数] integer check([分数] between 0 and 100) ) insert 课程信息表 values('100101', '西班牙语') insert 课程信息表 values('100102', '大学英语') update 课程信息表 set 名称='专业英语' where 课号分 2 @、@@ 68、C beautiful、我心中的太阳 水平、垂直 选择、投影 实体、域 算术、逻辑 6、7 17、-215、13.4400、-18.4560 答案 2 2 2 2 2 2 2 2 4 分 2 Y 3 Y 4 N 5 N 6 N 7 Y 8 N 9 N 10 11 12 13 14 15 Y N Y N Y N 2 D 3 C 4 C 5 A 6 A 7 C 8 A 9 A 10 D 2. 2 3. 4 4. 5 5. 8 ———————————————————————————————————————————— 北京大学出版社 8 ISBN 7-301-10173-2/TP.0842

='100102' delete 课程信息表 where 课号='100101' 6. create view [成绩信息表视图] as select 成绩信息表.学号,姓名,成绩信息表.课号,名称 课程名称,分数 from 成绩信息表,学生信息表,课程信息表 where 成绩信息表.学号=学生信息表.学号 and 成绩信息表.课号=课程信息表.课号 select 姓名, 性别, 民族 from 学生信息表 where 姓名 like '刘%' and 性别='女' select 学号, 姓名 from 学生信息表 where 学号 in (select distinct 学号 from 成绩信息表 where 分数<60) 5 7. 2 8. 4 9. 7 create procedure [某门课程高低均分] @课程名 nchar(16) as select 课程名称, 最高分=max(分数), 最低分=min(分数), 平均分=avg(分数) from 成绩信息表视图 where 课程名称 = @课程名 group by 课程名称 go execute [某门课程高低均分] '专业英语' exec sp_addlogin 'U院长', '888', '学生成绩数据库' exec sp_grantdbaccess 'U院长', 'U读者' exec sp_addrolemember 'db_datareader', 'U读者' 6 10

《SQL数据库管理与开发教程与实训》试题(C卷)

杜兆将 老师

一、单项选择题(每小题1分,共10分)

1.下列四项中,不属于数据库特点的是( )。

A.数据共享 B.数据完整性 C. 数据冗余很高 D.数据独立性高

2. 目前( )数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的

商用数据库系统。 A.关系 B.面向对象 C.分布

3. 数据库设计中的概念结构设计的主要工具是( )。

———————————————————————————————————————————— 北京大学出版社 9 ISBN 7-301-10173-2/TP.0842

A.数据模型 B.E—R模型 C.新奥尔良模型 D.概念模型

4. ( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户

或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 A.DBMS B.DB C.DBS D.DBA 5. 在SQL中,建立视图用的命令是 ( )。

A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX

6. SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且( )。

A.包括20岁和30岁 B.不包括20岁和30岁 C.包括20岁但不包括30岁 D.包括30岁但不包括20岁

8. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。

A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 9. SQL语言中,删除一个表的命令是( )。

A. DELETE B. DROP C. CLEAR D. REMOVE 10. SQL的视图是从( )中导出的。

A.基本表 B. 视图 C. 基本表或视图 D. 数据库

三、填空题(每空1分,共20分)

1. 数据库系统具有数据的___________、_________和_________三级模式结构。 2. SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________

开头。

3. 语句 select ascii('C'), char(68), len(' 你 是BigTiger ') 的执行结果是:

_________、_________和_________。

4. 语句 select upper('beautiful') , ltrim (' 我心中的太阳') 的执行结果是:

____________和___________。

5. 关系运算主要有________、________、________。

6. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______

分割。

7. 索引的类型主要有_ _和_ __。 8. 在SQL Server 2000中,数据库对象包括数据表、______、______、触发器、规则、默认和用户自定义的数据类型等。

五、设计题(共50分)

现有关系数据库如下:

数据库名:学生成绩数据库

学生表(学号 char(6),姓名,性别,民族,身份证号) 课程表(课号 char(6),名称) 成绩表(ID,学号,课号,分数)

用SQL语言实现下列功能的sql语句代码:

1. 创建数据库[学生成绩数据库]代码(2分); create database [学生成绩数据库] go use [学生成绩数据库] go

———————————————————————————————————————————— 北京大学出版社 10 ISBN 7-301-10173-2/TP.0842

2. 创建[课程表]代码(2分); 课程表(课号 char(6),名称) CREATE TABLE 课程表

(course CHAR(6),PRIMARY KEY, Name CHAR(6),NOT NULL, );

要求使用:主键(课号)、非空(名称) 3. 创建[学生表]代码(6分);

学生表(学号 char(6),姓名,性别,民族,身份证号)

要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别)

4. 创建[成绩表]代码(4分);

成绩表(ID,学号,课号,分数) 要求使用:主键(课号)、外键(成绩表.学号,成绩表.课号)、检查(分数),自动编号(ID) 5. 将下列课程信息添加到课程表的代码(8分) 课号 课程名称 100001 大学语文 100002 大学英语 100003 西班牙语

修改 课号为100002的课程名称:实用英语 删除 课号为100003的课程信息

6. 写出创建:成绩表视图(学号,姓名,课号,课程名称,分数)的代码;(4分) 7. 写出创建:某门课程成绩 内嵌表值函数以及检索的代码;(6分) 检索:所有修 实用英语 这门学生的成绩;

8. 写出创建:某门课程高低均分 计算某门课程成绩最高分、最低分、平均分 存储过程以及执行的代码;(6分)

执行:所有修 实用英语 这门学生的最高分、最低分、平均分; 9. 检索姓李的女同学的情况:姓名、性别、民族。(2分)

10. 检索有一门或一门以上课程成绩大于等于90分的所有学生的信息,包括学号、姓名。(4分)

11. 设置一SQL身份验证的账户:登录名:U领导,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据。请写出账户、权限设置的T_SQL脚本。(6分)

———————————————————————————————————————————— 北京大学出版社 11 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(C卷)参考答案

一、1.C 2.A 3. B 4.A 5.C 6.A 7. 8.D 9.B 10.C 二、1. N 2.N 3.Y 4.N 5.N 6.N 7. Y 8.N 9.N 10.Y 三、1. 外模式、模式、内模式。

2. @,@@

3. 67, D, 12

4. BEAUTIFAL, 我心中的太阳 5. 选择、投影、连接。 6. 水平, 垂直

7. 聚簇索引 非聚簇索引 8. 视图、存储过程

五、设计题

1.

create database [学生成绩数据库] go

use [学生成绩数据库] go

2. create table 学生表

([学号] char(6) primary key, [姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null, [身份证号] char(18) unique )

3. create table 课程表

([课号] char(6) primary key, [名称] char(40) not null )

4. create table 成绩表

(ID integer IDENTITY(1, 1),

[学号] char(6) references 学生表(学号), [课号] char(6) references 课程表(课号),

[分数] integer check([分数] between 0 and 100) )

5. insert 课程表 values('100001', '大学语文') insert 课程表 values('100002', '大学英语') insert 课程表 values('100003', '西班牙语')

———————————————————————————————————————————— 北京大学出版社 12 ISBN 7-301-10173-2/TP.0842

update课程表 set 名称='实用英语' where 课号='100002' delete课程表 where 课号='100003' 6. create view [成绩表视图] as

select 成绩表.学号,姓名,成绩表.课号,名称 课程名称,分数 from 成绩表,学生表,课程表

where 成绩表.学号=学生表.学号 and 成绩表.课号=课程表.课号

create view [成绩表视图] as

select 成绩表.学号,姓名,成绩表.课号,名称 课程名称,分数 from 成绩表 join 学生表 on 成绩表.学号=学生表.学号 join 课程表 on 成绩表.课号=课程表.课号

7. create function [某门课程成绩](@课程名 varchar(40))

returns table as

return (select 学号,姓名,课程名称,分数 from 成绩表视图 where 课程名称=@课程名)

create function [某门课程成绩](@课程名 varchar(40))

returns table as

return (select * from 成绩表视图 where 课程名称=@课程名)

select * from [某门课程成绩]('实用英语')

8. create procedure [某门课程高低均分]

@课程名 varchar(40) as

select 课程名称, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数) from 成绩表视图

where 课程名称 = @课程名

execute [某门课程高低均分] '实用英语'

9. select 姓名, 性别, 民族 from 学生表 where 姓名 like '李%' and 性别='女'

10. select 学号, 姓名 from 学生表 where学号 in (select distinct 学号

from 成绩表 where分数>=90)

11.

use [学生成绩数据库]

exec sp_addlogin 'U领导', NULL, '学生成绩数据库', '简体中文' exec sp_password NULL, '888', 'U领导' exec sp_grantdbaccess 'U领导', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

use [学生成绩数据库]

exec sp_addlogin 'U领导', '888', '学生成绩数据库'

———————————————————————————————————————————— 北京大学出版社 13 ISBN 7-301-10173-2/TP.0842

exec sp_grantdbaccess 'U领导', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

———————————————————————————————————————————— 北京大学出版社 14 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(D卷)

刘占文 老师

一、单项选择题(每小题1分,共10分)

1.数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、( )和用户构成。 A.DBMS B.DB C.DBS D.DBA 2.数据库管理系统的英文缩写是( )。

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

3.在关系运算中,选取符合条件的元组是( )运算。

A.除法 B.投影 C.连接 D.选择

4.数据库设计中的逻辑结构设计的任务是把( )阶段产生的概念数据库模式变换为逻辑结构的数据库模式。 A.需求分析 B.物理设计 C.逻辑结构设计 D.概念结构设计 5.一个规范化的关系至少应当满足( )的要求。

A.一范式 B.二范式 C.三范式 D.四范式 6.在实际数据库设计中,“学号”通常作为( )存在。

A.数据结构 B.数据存储 C.数据项目 D.处理过程 7.SQL Server 2000中删除表中记录的命令是( )。

A.DELETE B.SELECT C.UPDATE D.DROP 8.运行命令SELECT ASCII(‘Alklk’) 的结果是( )。

A.48 B.32 C.90 D.65 9.在SQL中,建立视图用的命令是 ( )。

A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX

10.在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。

A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb

三、填空题(每空1分,共20分)

1.数据库三个要素是__________、__________和_____________。 2. 语句 select year('1931-9-18') 的执行结果是____________。

3.__________是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。 4.__________是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。

5.事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么

———————————————————————————————————————————— 北京大学出版社 15 ISBN 7-301-10173-2/TP.0842

______,要么________(如果在操作执行过程中不能完成其中任一操作)。

6. SQL Server 2000 采用的身份验证模式有________________模式和________模式。 7.用户访问SQL Server数据库时,经过了两个_______验证和________验证安全验证阶段。 8.SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和________________备份。

9.SQL Server代理主要由______、______和警报来组成。

10.SQL Server复制把服务器分为______服务器、______服务器和订阅服务器三种。

五、设计题(1—6题每空2分,第7题10分,共40分)

1.计算1+2+3+??+100的和,并使用PRINT显示计算结果。 DECLARE @I int,@sum int,@csum char(10) SELECT @I=1,@sum=0 WHILE @I<=________ BEGIN

SELECT @sum = __________ SELECT @I=@I+1 END

SELECT @csum=convert(char(10),@sum) __________ ’1+2+3+……+100=’ + @csum

2.使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度分别为8、2、20且均不允许为空。 CREATE ________ CLASS

(CLASSNO ______ (8) NOT NULL, DEPARTNO CHAR (2) NOT NULL,

CLASSNAME CHAR (____) NOT NULL

3.声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集。 USE XK

DECLARE @COUNO VARCHAR(3),@COUNAME VARCHAR(20) _________________________

FOR SELECT COUNO,COUNAME FROM COURSE ORDER BY COUNO _________________________

FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME WHILE @@FETCH_STATUS=0 BEGIN

PRINT ’课程号:’+ @COUNO +’课程名称:’+ @CouName FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAME END

_________________________ DEALLOCATE CRSCOURSSE

4.使用SQL语句在XK数据库中创建一个名为V_STUDENT的视图,该视图仅查看“STUDENT”表中“00电子商务”班的学生信息。 USE XK

CREATE ____________ V_STUDENT AS

———————————————————————————————————————————— 北京大学出版社 16 ISBN 7-301-10173-2/TP.0842

SELECT *

FROM ____________

WHERE CLASSNO=’20000001’

5.使用SQL语句在XK数据库中创建一个名为P_STUDENT的存储过程,该存储过程返回“STUDEND”表中所有班级代码为200000001的记录。 USE XK

CREATE ____________ P_STUDENT AS

SELECT *

____________ STUDENT

WHERE CLASSNO=’20000001’

6.创建触发器TEST,要求每当在STUDENT表中修改数据时,将向客户端显示一条“记录已修改”的消息。 USE XK

_________________ ON STUDENT

_________________ AS

PRINT ‘记录已修改’

7.定义事务向[学生]数据库的[选课表]中插入学号=‘20030021’的多条记录,并检验若报名课程超过4门,则回滚事务,即报名无效,否则成功提交。 选课表(学号,课号,报名号) 假设要插入的记录为以下三条: ‘20030021’,‘01’,1 ‘20030021’,‘02’,2 ‘20030021’,‘03’,3 根据以上要求编写程序,并指出本题定义的事务是否成功提交。

———————————————————————————————————————————— 北京大学出版社 17 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(D卷)参考答案

一、单项选择题

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

二、判断题

1.N 2.N 3.N 4.Y 5.Y 6.N 7.Y 8.N 9.Y 10.N

三、填空题

1.数据结构、数据操作、完整性约束 2.1931 3.域完整性 4.触发器 5.都完成、都取消 6.Windows身份验证、混合 7.身份、权限

8.完整、差异、事务日志、文件和文件组 9.操作员、作业 10.发布、分发

五、设计题

1.100 @sum+@i print 2.table char 20 3.Declare crscourse cursor open crscourse close crscourse 4.view student 5.procedure from

6.Alter trigger test for update 7. Use 学生

Begin transaction

Insert 选课表(学号,课程号,报名号) values(‘20030021’,‘01’,1) Insert 选课表(学号,课程号,报名号) values(‘20030021’,‘02’,2) Insert 选课表(学号,课程号,报名号) values(‘20030021’,‘03’,3) Declare @num int

———————————————————————————————————————————— 北京大学出版社 18 ISBN 7-301-10173-2/TP.0842

Set @num=(select count(*) from 选课表 where 学号=‘20030021’) If @num>4 begin

Rollback transaction Print ‘超过报名门数!’ end Else Begin

Commit transaction Print ‘报名成功!’ end go

本题定义的事务成功提交。

《SQL数据库管理与开发教程与实训》试题(E卷)

刘占文 老师

一、单项选择题(每小题1分,共10分) 1.( )是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。 A.DATA B.INFORMATION C.DB 2.需求分析的主要方法是( )。 A.自顶向下 B.自底向上 C.从左到右 D.混合策略 3.在关系运算中,选取符合条件的元组是( )运算。 A.除法 B.投影 C.连接 D.选择 D.DBS 4.关系数据库的规范化理论指出,关系数据库中的关系应满足一定的要求,最起码的要求是达到1NF,既满足( )。 A.主关键字唯一标识表中的每一行 B.关系中的行不允许重复 C.每个非关键字列都完全依赖于主关键字 D.每个属性都有是不可再分的基本数据项 5.SQL Server 2000中表查询的命令是( )。 A. USE B.SELECT C.UPDATE D.DROP 6.SQL Server 2000中表更新数据的命令是( )。 A.USE B.SELECT C.UPDATE D.DROP 7.在SQL Server 2000中,下列变量名正确的是( )。 A.@sum B.j C.sum D.4kk 8.建立索引的目的是( )。 ———————————————————————————————————————————— 北京大学出版社 19 ISBN 7-301-10173-2/TP.0842

A.降低SQL Server数据检索的速度 B.与SQL Server数据检索的速度无关 C.加快数据库的打开速度 D.提高SQL Server数据检索的速度 9.用于求系统日期的函数是( )。 A.YEAR() B.GETDATE() C.COUNT() D.SUM() 10.向用户授予操作权限的SQL语句是( )。 A.CTEATE B.REVOKE C.SELECT D.GRANT 三、填空题(每空1分,共20分)

1.SQL语言主要由________________、_______________和数据控制语言(DCL)组成。 2.SQL Server 2000采用的身份验证模式有Windows身份验证模式和_________模式。 3.语句 SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是_____________。 4. ________是由一个或多个数据表(基本表)或视图导出的虚拟表。

5._____________用于保证数据库中数据表的每一个特定实体的记录都是惟一的。 6.索引的类型有______________和非聚集索引。

7._________是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。 8.触发器定义在一个表中,当在表中执行________、________或delete操作时被触发自动执行。

9.事务的ACID属性是指________性、________性、_______性和_______性。

10.数据库管理系统的安全性通常包括两个方面,一是指数据________的安全性,二是指数据_______的安全性。

11.SQL Server代理主要由________、操作员和________来组成。 12.SQL Server复制有快照复制、________复制和________复制3种类型。

五、设计题(每小题5分,共40分)

现有关系数据库如下: 数据库名:学生成绩数据库

学生表(*学号,姓名,性别,民族) 课程表(*课程号,课程名称,任课教师) 成绩表(*学号,*课程号,分数) 用SQL语言实现下列功能的sql语句代码: 1.创建数据库[学生成绩数据库]代码(2分); 2. 创建[课程表]代码(2分); 课程表(课号 char(6),名称)

要求使用:主键(课号)、非空(名称) 3. 创建[学生表]代码(2分);

学生表(学号 char(6),姓名,性别,民族)

要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、检查(性别)

———————————————————————————————————————————— 北京大学出版社 20 ISBN 7-301-10173-2/TP.0842

4. 创建[成绩表]代码(2分); 成绩表(学号,课程号,分数)

要求使用:外键(成绩表.学号,成绩表.课程号)、检查(分数) 5. 将下列课程信息添加到课程表中 课号 课程名称 100001 大学语文 100002 大学英语

6. 写出创建成绩表视图(学号,姓名,课程号,课程名称,成绩)的代码; 7. 写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分 8. 检索姓李的女同学的信息:姓名、性别、民族。 9. 设置SQL身份验证的账户:

登录名:U领导 密码:888

数据库用户名:U读者

权限:可查询查询本数据库中所有表的数据。

10. 定义一事务向成绩表中插入学号=‘20030021’的多条记录,并检验若该同学成绩超过4门,则回滚事务,即成绩无效,否则成功提交。

———————————————————————————————————————————— 北京大学出版社 21 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(E卷)参考答案

一、单项选择题

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

二、判断题

1.N 2.Y 3.Y 4.N 5.N 6.Y 7.Y 8.N 9.N 10.Y

三、填空题

1.数据定义语言(DDL)、数据操作语言(DML) 2.混合 3.35 4.视图 5.实体完整性 6.聚集索引 7.存储过程 8.insert、update 9.原子、一致、独立、持久 10.访问、运行 11.作业、警报 12.事务、合并

五、设计题

1.create database [学生成绩数据库] go

use [学生成绩数据库] go

2. create table课程表

([课程号] char(6) primary key, [课程名称] char(40) not null [任课教师] char(4) )

3. create table 学生表

([学号] char(6) primary key, [姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null )

4. create table成绩表

([学号] char(6) references 学生表(学号),

———————————————————————————————————————————— 北京大学出版社 22 ISBN 7-301-10173-2/TP.0842

[课程号] char(6) references 课程表(课号), [成绩] integer check([成绩] between 0 and 100) )

5.insert 课程表 values('100001', '大学语文') insert 课程表 values('100002', '大学英语') insert 课程表 values('100003', '西班牙语') 6.create view [成绩表视图] as

select 学号,姓名,课程号,课程名称,成绩 from 成绩表,学生表 where 成绩表.学号=学生表.学号

select 学号,姓名,课程号,课程名称,成绩 from 成绩表 join 学生表 on 成绩表.学号=学生表.学号 7.create procedure [分数]

@课程名 nchar(16) as

select 课程名称, 最高分=max(分数)、最低分=min(分数)、平均分=avg(分数) from 成绩表视图

where 课程名称 = @课程名

8.select 姓名, 性别, 民族 from 学生表 where 姓名 like '李%' and 性别='女' 9.use [学生成绩数据库]

exec sp_addlogin 'U领导', '888', '学生成绩数据库', '简体中文' exec sp_grantdbaccess 'U领导', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者' 10.Begin transaction

Insert 成绩表(学号,课程号,分数) values(‘20030021’,’001’,80) Insert 成绩表(学号,课程号,分数) values(‘20030021’,’002’,90) Insert 成绩表(学号,课程号,分数) values(‘20030021’,’003’,80) Insert 成绩表(学号,课程号,分数) values(‘20030021’,’004’,70) Declare @num int

Set @num=(select count(*) from 成绩表 where 学号=‘20030021’) If @num>4

Rollback transaction Else

Commit transaction go

《SQL数据库管理与开发教程与实训》试题(F卷)

郭鲜凤 老师

一、单项选择题(每小题1分,共10分)

1.SQL Server系统中的所有服务器级系统信息存储于哪个数据库( )。

A. master B. model C. tempdb D. msdb 2.下列标识符可以作为局部变量使用( )。

———————————————————————————————————————————— 北京大学出版社 23 ISBN 7-301-10173-2/TP.0842

A. Myvar B. My var C. @Myvar D. @My var 3.以下关于主键的描述正确的是( )。

A.标识表中唯一的实体 B.创建唯一的索引,允许空值

C.只允许以表中第一字段建立 D.表中允许有多个主键 4.为数据表创建索引的目的是( )。

A.提高查询的检索性能 B.创建唯一索引 C.创建主键 D.归类 5.下列哪个不是sql 数据库文件的后缀。

A..mdf B..ldf C..dbf D..ndf

6.在SQL SERVER服务器上,存储过程是一组预先定义并( )的Transact-SQL语句。

A.保存 B.编译 C.解释 D.编写 7.数据定义语言的缩写词为 ( )。

A.DDL B.DCL C.DML D.DBL

8.以下关于外键和相应的主键之间的关系,正确的是( )。

A.外键并不一定要与相应的主键同名 B.外键一定要与相应的主键同名

C.外键一定要与相应的主键同名而且唯一

D.外键一定要与相应的主键同名,但并不一定唯一 9.在数据库设计中使用E-R图工具的阶段是( )。

A.需求分析阶段

B.数据库物理设计阶段 C.数据库实施

D.概念结构设计阶段

10.在T-SQL语言中,修改表结构时,应使用的命令是( )

A.UPDATE B. INSERT C. ALTER D. MODIFY

三、填空题(每空1分,共30分)

1. 目前最常用的数据库有层次数据库、_________数据库和_________数据库,其中_________数据库是目前应用最广泛的一种数据库。

2. 关系数据模型的逻辑结构是__________,关系中的列称为________,行称为________。 3. 关系数据库模型的数据操作主要包括插入、________、________和________数据。 4. SQL、DCL和DML缩写词的意义是___________语言、___________语言和___________语言。 5.实体之间的联系类型有三种,分别为________、________和________。

6.数据库系统的三级模式结构和两级数据映像确保了数据的________独立性和________

独立性。

7.SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、

____________备份和________________备份。

8.SQL Server代理主要由______、______和_____来组成。

9.SQL Server复制把服务器分为______服务器、______服务器和_____服务器三种。 10.在SQL中,create view、alter view和drop view命令分别为________、________和

———————————————————————————————————————————— 北京大学出版社 24 ISBN 7-301-10173-2/TP.0842

________视图的命令。

五.设计题(每小题5分,共40分)

有一个[学生课程]数据库,数据库中包括三个表:

学生表:Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:Student(Sno,Sname,Ssex,Sage,Sdept),Sno 为关键字。

课程表:Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。

成绩表:SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO) 为关键字。

用SQL语言实现下列功能:

1.建立学生表[Student],其中学号属性不能为空,并且其值是唯一的。 2.查考试成绩有不及格的学生的学号。 3.将学号为05001学生的年龄改为22岁。 4.计算1号课程的学生平均成绩。

5.创建存储过程[getDetailByName],通过输入参数学生姓名(如\张三\,筛选出该学生

的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。 6. 查计算机系姓赵的男同学的姓名(Sname)、性别(Ssex)、年龄(Sage)。

7.创建视图[学生成绩表视图],视图中包括学号(Sno)、姓名(Sname)、课程号(Cno)、课

程名(Cname)、成绩(Grade)。

8.将一个新学生记录(学号:05020;姓名:丁莉;性别:女;年龄:17岁;所在系:计算

机;)插入Student表中。

———————————————————————————————————————————— 北京大学出版社 25 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(F卷)参考答案

一、1. A 2. C 3. A 4. A 5. A 6.B 7.B 8.A 9.D 10.C 二、1. N 2.N 3.N 4.N 5.Y 6.Y 7. N 8.N 9.Y 10.Y 三、

1.网状、关系、关系 2.二维表、属性、元组 3.删除、更新、查询

4.结构化查询、数据控制、数据操作 5.一对一、一对多、多对多 6.逻辑、物理

7.完整、差异、事务日志、文件和文件组 8.操作员、作业、警报 9.发布、分发、订阅 10.建立、修改、删除

五、设计题

1.

create table student

(Sno char(5) primary key, Sname char(20), Ssex char(2), Sage int,

Sdept char(15) ) 2.

select distinct sno from sg

where grade < 60 3.

update student set sage=22

where sno='05001' 4.

select avg(grade) from sg where cno='1'

5.

create procedure getdetailbyname @name nvarchar(10) as

if (select count(*) from student where sname = @name) > 0 select * from student where sname = @name else

———————————————————————————————————————————— 北京大学出版社 26 ISBN 7-301-10173-2/TP.0842

print '不存在姓名为 ' + @name + ' 的学生资料' 6.

select sname,ssex,sage from sdudent

where sdept=’计算机系’and sname like '赵 %' and ssex ='女' 7.

create view [学生成绩表视图] as

select sno, sname, cno, cname, grade from sg, sdudent where sc.sno=sdudent.sno 8.

insert into student

values ('05020', '丁莉', '女', 17, '计算机系')

《SQL数据库管理与开发教程与实训》试题(G卷)

郭鲜凤 老师

一、单项选择题(每小题1分,共10分)

1. 下列四项中说法不正确的是( )

A.数据库减少了数据冗余 B.数据库中的数据可以共享 C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性 2. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,

从部门到职员的联系类型是( ) A.多对多 B.一对一 C.多对一 D.一对多

3. SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( )。

A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 4. 在SQL Server 中,model是( )

A.数据库系统表 B. 数据库模板 C.临时数据库 D. 示例数据库 5.在视图上不能完成的操作是( )

A.更新视图数据 B.查询 C.在视图上定义新的基本表 D.在视图上定义新视图 6. 数据库的三要素,不包括( )

A.完整性规则 B.数据结构 C.恢复 D.数据操作 7.一个规范化的关系至少应当满足( )的要求。

A.一范式 B.二范式 C.三范式 D.四范式

8. 表达实体之间逻辑联系的E-R模型,是数据库的( )

A. 概念模型 B. 逻辑模型 C. 外部模型 D. 物理模型 9. 下列哪个不是sql 数据库文件的后缀。

A..mdf B..ldf C..dbf D..ndf

————————————————————————————————————————————

北京大学出版社 27 ISBN 7-301-10173-2/TP.0842

10.在SQL语言中,\授权\命令是( )

A. GRANT B. REVOKE C. OPTION D. PUBLIC

三.填空题(每空1分,共30分)

1.从最终用户角度来看,数据库应用系统分为单用户结构、主从式结构、分布式结构、___________结构和___________结构。

2.完整性约束包括_______完整性、________完整性、________完整性和用户定义完整性。

________完整性用于保证数据库中数据表的每一个特定实体的记录都是惟一的。 3.创建、修改和删除表命令分别是_________ table、_________ table和_________ table。 4.用SELECT进行模糊查询时,可以使用like或not like匹配符,但要在条件值中使用____

或____等通配符来配合查询。并且,模糊查询只能针对_________类型字段查询。 5.SQL Server聚合函数有最大、最小、求和、平均和计数等,它们分别是_______、_______、

_______、avg和count。

6.SQL Server中数据操作语句包括________、________、________和select语句。 7. 事务的ACID属性是指________性、________性、_______性和_______性。

8. 游标的操作步骤包括声明、______、处理(提取、删除或修改)、______和______游标。 9.SQL Server代理主要由______、______和警报来组成。

10.SQL Server复制把服务器分为______服务器、______服务器和______服务器三种。

五.设计题(每小题5分,共40分)

有一个[学生课程]数据库,数据库中包括三个表:

学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。

课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。

成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO)为关键字。

用SQL语言实现下列功能:

1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。 2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。

3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。 4.查询学习1号课程的学生最高分数、平均成绩。 5.查询与“李洋”在同一个系学习的学生。 6.将计算机系全体学生的成绩置零。 7.删除学号为05019的学生记录。

8.删除计算机系所有学生的成绩记录。

———————————————————————————————————————————— 北京大学出版社 28 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(G卷)参考答案

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

1.客户服务器、浏览器服务器 2.实体、域、参照、实体 3.create、alter、drop 4.%、_、字符 5.max、min、sum

6.insert、update、delete 7.原子、一致、独立、持久 8. 打开、关闭、释放 9.作业、操作员

10.发布、分发、订阅

五、设计题

1.

CREATETABLE Student

(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(2), Sage INT,

Sdept CHAR(15))

2.

ALTER TABLE Student ADD Scome DATETIME 3.

SELECT Sno, Grade FROM SG

WHERE Cno='3'

ORDER BY Grade DESC

4.

SELECT MAX(Grade), AVG(Grade) FROM SC

WHERE Cno='1' 5.

SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN

(SELECT Sdept FROM Student WHERE Sname='李洋') 6.

UPDATE SG SET Grade=0 WHERE Sno in

( SELECT Sno FROM Student

———————————————————————————————————————————— 北京大学出版社 29 ISBN 7-301-10173-2/TP.0842

WHERE Sdept = '计算机系') 7.

DELETE FROM Student WHERE Sno='05019' 8.

DELETE FROM SG WHERE Sno in

( SELECT Sno FROM Student WHERE Sdept = '计算机系')

《SQL数据库管理与开发教程与实训》试题(H卷)

郭翠英 老师

一、单项选择题(每小题1分,共10分)

1.下列四项中,不属于SQL2000实用程序的是( )。

A.企业管理器 B.查询分析器 C.服务管理器 D.媒体播放器

2. SQL Server安装程序创建4个系统数据库,下列哪个不是( )。

A.master B.model C.pub D. msdb 3. 下列哪个不是数据库对象( )。

A.数据模型 B.视图 C.表 D.用户 4. 下列哪个不是sql 数据库文件的后缀。

A..mdf B..ldf C..tif D..ndf 5. 在SQL中,建立表用的命令是 ( )。

A.CREATE TABLE B.CREATE RULE C.CREATE VIEW D.CREATE INDEX

6. SQL语言中,条件“年龄BETWEEN 40 AND 50”表示年龄在40至50之间,且( )。

A.包括40岁和50岁 B.不包括40岁和50岁 C.包括40岁但不包括50岁 D.包括50岁但不包括40岁 7. 模式查找like '_a%',下面哪个结果是可能的

A.aili B. bai C.bba D.cca

8. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。

A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 9. SQL语言中,删除记录的命令是( )。

A. DELETE B. DROP C. CLEAR D. REMOVE 10. SQL的视图是从( )中导出的。

A.基本表 B. 视图 C. 基本表或视图 D. 数据库

三、填空题(每空1分,共20分)

1. 关系数据库关系运算___________、_________和_________。 2. SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________

开头。

3. 语句 select ascii('D')的执行结果是: ________。

4. 语句 select upper('beautiful') , ltrim (' 我心中的太阳') 的执行结果是:

———————————————————————————————————————————— 北京大学出版社 30 ISBN 7-301-10173-2/TP.0842

____________和___________。

5. 表或视图的操作权限有___________、___________、___________、___________和dri。 6. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______

分割。

7. SQL Server代理主要由______、______和警报来组成。

8. 数据完整性的类型有________完整性、________完整性、________完整性和________完整性。

五、设计题(共50分)

现有关系数据库如下:

数据库名:教师数据库

教师表(编号 char(6),姓名,性别,民族,职称,身份证号) 课程表(课号 char(6),名称)

任课表(ID,教师编号,课号,课时数)

用SQL语言实现下列功能的sql语句代码: 1. 创建上述三表的建库、建表代码(14分); 要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID) 2. 将下列课程信息添加到课程表的代码(6分) 课号 课程名称

100001 SQL Server数据库 100002 数据结构 100003 VB程序设计

修改 课号为100003的课程名称:Visual Basic程序设计 删除 课号为100003的课程信息

3. 写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;(4分) 4. 写出创建[某门课任课教师]内嵌表值函数以及检索的代码;(6分) 检索:所有代'SQL Server数据库'这门课程的老师姓名;

5. 写出创建[统计课时数]:输出最大课时数、最低课时数、平均课时的存储过程以及执行代码;(6分)

6. 写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。(6分) 执行:计算“郭老师”的总课时。(6分)

7. 检索有一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名。(4分) 8. 建一个规则,并将其绑定到教师表的职称列上,规定取值为('教授','副教授','讲师', '助教')之一。(4分)

———————————————————————————————————————————— 北京大学出版社 31 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(H卷)参考答案

一、1.D 2.C 3.A 4.C 5.A 6.A 7.B 8.D 9.A 10.C 三、1. 选择、投影、连接

2. @、@@ 3. 68

4. BEAUTIFAL、我心中的太阳 5. select、insert、update、delete 6. 水平、垂直 7. 作业、操作员

8. 实体、域、参照、用户自定义

五、设计题

1.

create database [教师数据库] --(2分) use [教师数据库] go

create table 教师表 --(6分) ([编号] char(6) primary key, [姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(8) default '汉族' not null, [职称] nchar(12),

[身份证号] char(18) unique )

create table 课程表 --(2分) ([课号] char(6) primary key, [名称] char(40) not null )

create table 任课表 --(4分) (ID IDENTITY(1, 1),

[教师编号] char(6) references 学生表(学号), [课号] char(6) references 课程表(课号),

[课时数] integer check([课时数] between 0 and 200) )

2.

insert 课程表 values('100001', 'SQL Server数据库') insert 课程表 values('100002', '数据结构') insert 课程表 values('100003', 'VB程序设计')

update 课程表 set 名称='Visual Basic程序设计' where 课号='100003'

delete 课程表 where 课号='100003'

3.

create view [任课表视图] as

———————————————————————————————————————————— 北京大学出版社 32 ISBN 7-301-10173-2/TP.0842

select 教师编号,姓名,课号, 课程名称,课时数 from 教师表,任课表 where 教师表.编号=任课表.教师编号

4.

create function [某门课任课教师](@课程名 varchar(15)) returns table as

return (select 课程名称, 课时数, 教师姓名=姓名 from 任课表视图 where 课程名=@课程名) go

select * from [某门课任课教师]('SQL Server数据库')

5.

create procedure [统计课时数] as

select 最大课时数=max(课时) ,最小课时数=min(课时),平均课时数=avg(课时) from 任课表

go

execute [统计课时]

6.

create procedure [统计课时] @教师名 nchar(16), as begin

declare @总课时 int

select @总课时=sum (课时) from 任课表视图 where 姓名 = @教师名 end go

execute [统计课时] '郭老师'

7.

select 编号, 姓名 from 教师表

where编号 in (select distinct 教师编号 from 任课表 where课时数>=90) 8.

create rule zhicheng _rule

as @zhicheng in ('教授','副教授','讲师', '助教') go

sp_bindrule zhicheng_rule, '教师表.职称'

《SQL数据库管理与开发教程与实训》试题(I卷)

郭翠英 老师

一、单项选择题(每小题1分,共10分)

1. 下列四项中说法不正确的是( )

A.数据库减少了数据冗余 B.数据库中的数据可以共享 C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性 2. 下列哪个不是SQL Server服务( )。

———————————————————————————————————————————— 北京大学出版社 33 ISBN 7-301-10173-2/TP.0842

A.SQL Server B.SQL Server Agent C.MS DTC D. PWS 3. 下列哪个不是数据库对象( )。

A.数据类型 B.规则 C.默认 D.用户

4. SQL Server对象的完整名称不包括下面哪个( )。

A.服务器名 B.数据库名 C.对象名 D.文件夹名 5. 数据定义语言的缩写词为 ( )。

A.DDL B.DCL C.DML D.DBL

6. SQL语言中,条件表示年龄在40至50之间的表达式为 ( )。

A. IN (40,50) B. BETWEEN 40 AND 50 C. BETWEEN 40 OR 50 D. BETWEEN 40 ,50 7.表示职称为副教授同时性别为男的表达式为( )

A. 职称='副教授' OR 性别='男' B. 职称='副教授' AND 性别='男' C. BETWEEN '副教授' AND '男' D. IN ('副教授','男') 8. 下面哪个不是SQL Server 的合法标识符( )。

A. a12 B. 12a C. @a12 D. #qq 9. SQL语言中,不是逻辑运算符号的( )。

A. AND B. NOT C. OR D. XOR 10.下面哪个函数是属于字符串运算的( )。

A.ABS B. SIN C. STR D. ROUND

三、填空题(每空1分,共20分)

1. 创建、修改和删除表命令分别是create table、_________ table和_________ table。 2. SQL Server 2000以_________开头的标识符,表示临时表或过程;局部变量名字必须以

_________开头,而全局变量名字必须以_________开头。

3. 语句 select char(65), len('我们快放假了.')的执行结果是________、_______。 4. 语句 select lower('beautiful'), rtrim (' 我心中的太阳 ') 的执行结果是:

____________和___________。 5. left join 运算是_____________。

6. SELECT DATEADD(day, 10, '2005-12-22')结果是_____________。 7. ROUND( )函数的是_____________函数。

8. 检索姓名字段中含有'娟'的表达式为 姓名like 。

9. 语句权限是指用户能否当前数据库上执行backup database、backup log、create database、create _________、create _________、create _________、create _________、create rule、create default语句。

10.SQL Server复制把服务器分为______服务器、______服务器和______服务器三种。

五、设计题(共50分)

现有关系数据库如下:

数据库名:医院数据库

———————————————————————————————————————————— 北京大学出版社 34 ISBN 7-301-10173-2/TP.0842

医生表(编号,姓名,性别,出生日期,职称) 病人表(编号,姓名,性别,民族,身份证号) 病历表(ID,病人编号,医生编号,病历描述) 用SQL语言实现下列功能的sql语句代码: 1. 创建上述三表的建库、建表代码;

要求使用:主键(师医生表.编号,病人表.课号)、外键(病历表.医生编号,病历表.病人课号)、非空(职称,姓名)、检查(性别),自动编号(ID) (16分) 2. 将下列医生信息添加到医生表的代码

编号 姓名 性别 出生日期 职称

100001 杜医生 男 1963-5-18 副主任医师 100002 郭医生 女 1950-7-26 副主任医师 100003 刘医生 男 1973-9-18 医师

修改 编号为100002的医生职称为‘主任医师’ 删除 编号为100003的医生信息 (8分)

3. 写出创建:医疗表视图(医生编号,姓名,病人姓名,病历)的代码;(4分)

4. 写出所有病人编号、姓名、病历、以及病人所对应的医生编号的查询语句;(4分) 7. 写出创建: 输出某医生(根据医生编号即可)看病人数存储过程以及执行过程(要

求输入医生姓名的参数,输出病人数)(6分)。 8. 写出查询1970年以前出生的医生(4分)。 7. 检索有病人的医生信息。(4分)

8. 创建一个默认,并将其绑定到医生表的成绩职称列上,默认值为“医师”。(4分)

———————————————————————————————————————————— 北京大学出版社 35 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(I卷)参考答案

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

2. #、@、@@ 3. A、7

4. beautiful、 我心中的太阳 5. 左外连接 6. 2006-01-01 7. 四舍五入 8. '%娟%'

9. table、view、procedure、function 10.发布、分发、订阅

五、设计题

1.

create database [医院数据库] use [医院数据库] go

create table 医生表

([编号] char(6) primary key, [姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')), [出生日期]datetime ,

[职称] char(18) not null )

create table病人表

([课号] char(6) primary key, [姓名] nchar(4) not null,

[性别] nchar(1) check([性别] in ('男', '女')), [民族] nchar(10),

[身份证号] char(18) not null )

create table病历表 (ID IDENTITY(1, 1),

[病人编号] char(6) references 病人表(学号), [医生编号] char(6) references 医生表(编号), [病历描述] varchar(1000) )

2.

insert 医生表 values('100001', '杜医生', '男', '1963-5-18', '副主任医师')

insert 医生表 values('100002', '郭医生', '女', '1950-7-26', '副主

———————————————————————————————————————————— 北京大学出版社 36 ISBN 7-301-10173-2/TP.0842

任医师')

insert 医生表 values('100003', '刘医生', '男', '1973-9-18', '医师')

update医生表 set 职称='主任医师' where 编号='100002' delete医生表 where 编号='100003' 3.

create view [医疗表视图] as

select br.姓名,ys.姓名,yl.病历 from 病人表 as br join 医疗表 as yl on br.编号yl.病人编号 join 医生表 as ys

on yl.医生编号=ys.编号 4.

Select br.编号, br.姓名, br.病历, yl.医生编号 from 病人表 br left join 医疗表 yl on br.编号 = yl.病人编号 5.

create procedure [某医生看病人数]

@医生编号 nchar(16), @人数 int output as

select @人数=count(病人编号) from 病人表

where 医生编号 = @医生编号 go

declare @TOTAL int

execute [某医生看病人数] '100001', @TOTAL 6

select * from 医生表 where 出生日期<'1970-01-01' 9.

select 编号, 姓名, 性别, 出生日期, 职称 from 医生表 where 编号 in (select 医生编号 from 医疗表) 8.

create default zhicheng AS '医师' go

exec sp_bindefault 'zhicheng', '医生表.职称'

《SQL数据库管理与开发教程与实训》试题(J卷)

吴建明 老师

一、选择题(每题1分,共20分)

1.3NF同时又是( )

A、2NF B、1NF C、BCNF D、1NF,2NF

2.DBS是采用了数据库技术的计算机系统。DBS是一个集合体,包含数据库、计算机硬件、

软件和( )

———————————————————————————————————————————— 北京大学出版社 37 ISBN 7-301-10173-2/TP.0842

A、系统分析员 B、程序员 C、数据库管理员 D、操作员

3.SQL Server支持在线备份,但在备份过程中,不允许执行的操作是( )

(1)、创建或删除数据库文件?(2)、创建索引?(3)、执行非日志操作?(4)、自动或手工缩小数据库或数据库文件大小?A、(1)?B、(1)(2)?C、(1)(2) (3)?D、(1)(2)(3)(4)??4.MS SQL Server是( )

A、数据库 B、数据库系统 C、数据处理系统 D、数据库管理系统

5.现有关系:学生(学号,姓名,课程号,系号,系名,成绩),为消除数据冗余,至少需

要分解为( ) A、1个表 B、2个表 C、3个表 D、4个表

6.数据库中存放两个关系:教师(教师编号,姓名)和课程(课程号,课程名,教师编号),

为快速查出某位教师所讲授的课程,应该( )

A、在教师表上按教师编号建索引 B、在课程表上按课程号建索引 C、在课程表上按教师编号建索引 D、在教师表上按姓名建索引 7.如果要修改表的结构,应该使用SQL语言的命令( )

A、UPDATE TABLE B、MODIFY TABLE C、ALTER TABLE D、CHANGE TABLE

8.已知员工和员工亲属两个关系,当员工调出时,应该从员工关系中删除该员工的元组,

同时在员工亲属关系中删除对应的亲属元组。在SQL语言中定义这个完整性约束的短语是( )

A、INSTEAD OF DELETE B、INSTEAD OF DROP C、AFTER DELETE D、AFTER UPDATE

9.安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库被删除后,不影

响系统的正常运行,这个数据库是( ) A、master数据库 B、 model数据库 C、tempdb数据库 D、 pubs数据库

10.对于数据库的管理,SQL Server的授权系统将用户分成四类,其中权限最大的用户是

( )

A、一般用户 B、系统管理员 C、数据库拥有者 D、数据库对象拥有者

11.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职

员,从职员到部门的联系类型是( ) A、多对多 B、一对一 C、多对一 D、一对多 12.数据库的并发操作可能带来的问题包括( )

A、丢失更新 B、.数据独立性会提高 C、非法用户的使用 D、增加数据冗余度 13.SQL语言中,删除一个表的命令是( )

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

————————————————————————————————————————————

北京大学出版社 38 ISBN 7-301-10173-2/TP.0842

14.下列四项中说法不正确的是( )

A.数据库减少了数据冗余 B.数据库中的数据可以共享 C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性

15.当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是( )

A、左外联接 B、右外联接 C、内联接 D、外联接 16.下列聚合函数中正确的是( )

A、SUM (*) B、MAX (*) C、COUNT (*) D、AVG (*) 17.SQL中,下列涉及空值的操作,不正确的是( )

A、age IS NULL B、age IS NOT NULL C、age = NULL D、NOT (age IS NULL)

18.MS SQL Server在WINDOWS 2000操作系统平台上被定义为一项( )

A、任务 B、服务 C、应用程序 D、事务 19.脚本文件是在( )中执行的。

A、企业管理器 B、查询分析器 C、服务管理器 D、事件探查器 20.每个数据库有且只有一个( )

A、主要数据文件 B、次要数据文件 C、日志文件 D、索引文件

三、填空题(每题1分,共10分)

1.MS SQL Server提供多个图形化工具,其中用来启动、停止和暂停SQL Serve服务的图形化工具称为_________________。

2.数据库操作语句就是指________、_________、_________和select语句。

3.在安装MS SQL Server时,必须选择一种安全类型。如果在登录时,不需要记录用户名

和登录ID,则该安全模式是_____________________。

4.如果表的某一列被指定具有NOT NULL属性,则表示________________________________________。

5.已知有学生关系S(SNO,SNAME,AGE,DNO),各属性含义依次为学号,姓名、年龄和所

在系号;学生选课关系SC(SNO,CNO,SCORE),各属性含义依次为学号、课程号和成绩。分析以下SQL语句: SELECT SNO FROM SC

WHERE SCORE = (SELECT MAX(SCORE) FROM SC WHERE CNO=’002’) 简述上述语句完成了

的查询操作是___________________________________。

6.SQL Server复制有快照复制、________复制和________复制3种类型。

7.语句 select day('2004-4-6'), len('我们快放假了.') 的执行结果是:_________和

_________。

四、设计题(共50分)

1. 已知有如下4个表:

供应商表S(SNO,SNAME,CITY)

零件表J(JNO,JNAME,COLOR,WEIGHT) 工程表P(PNO,PNAME,CITY)

———————————————————————————————————————————— 北京大学出版社 39 ISBN 7-301-10173-2/TP.0842

供应情况表SPJ(SNO,PNO,JNO,QTY)

其中,SNO、SNAME、CITY分别表示供应商代码、供应商姓名、供应商所在城市,JNO、JNAME、COLOR、WEIGHT分别表示零件代码、零件名、颜色和重量,PNO、PNAME、CITY分别表示工程代码、工程名、工程所在城市,QTY表示某供应商供应某工程某种零件的数量。

分别写出SQL语句,完成如下功能:(每小题5分,共20分) (1)查询出重量大于30或颜色为\的零件名; (2)查询出每个供应商为每个工程供应零件的数量

(3)查询出给\北京\的工程供应\齿轮\零件的供应商名; (4)建一个视图,定义为所有\颜色的零件。 2. 图书出版管理数据库中有两个基本表:

图书 (书号,书名,作者编号,出版社,出版日期) 作者 (作者编号,作者名,年龄,地址)

试用SQL语句写出下列查询:检索年龄低于作者平均年龄的所有作者的作者名、书名和出版社。(10分) 3. 现有关系数据库如下:

学生(学号,姓名,性别,专业、奖学金) 课程(课程号,名称,学分) 学习(学号,课程号,分数) 用SQL实现:(每小题5分,共20分) (1)查询没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业;

(2)查询没有任何一门课程成绩在80分以下的所有学生的信息,包括学号、姓名和专业; (3)对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为 1000元; (4)定义学生成绩得过满分(100分)的课程视图AAA,包括课程号、名称和学分;

———————————————————————————————————————————— 北京大学出版社 40 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(J卷)答案

一、选择题(每题1分,共20分) 1 2 3 4 5 6 7 8 D C D D C C C C 11 12 13 14 15 16 17 18 C A B C D C C B 三、填空题(每题2分,共10分) 1 服务管理器

2 insert、update、delete 3 Windows 认证模式

4 不允许在没有指定列缺省值的情况下插入省略该列值的数据行 5 检索有与课程号为“002”的课程的最高成绩相等的同学的学号 5 事务、合并 7 6、7

9 D 19 B 10 B 20 A 三、设计题(共50分)

1、(1)

select JNAME from J

where (WEIGHT>30) or (COLOR=’red’) (2)

select sum(QTY) from SPJ

group by SNO,PNO (3)

select SNAME from S where SNO in (select SNO from SPJ,P,J

where (CITY=’北京’) and (SPJ.PNO=P.PNO) and (JNAME=’齿轮’) and (SPJ.JNO=J.JNO)) (4)

create view greenj as

select * from J where COLOR=’green’ 2、

select 作者名,书名,出版社 from 图书,作者

where (图书.作者编号=作者.作者编号) and (年龄<(select avg(年龄) form 作者)) 3、(1)

select distinct学生.学号,姓名,专业 from 学生,学习

where (奖学金 is null) and (学生.学号=学习.学号) and (分数>95) (2)

select distinct学生.学号,姓名,专业 from 学生,学习

where (学生.学号=学习.学号) and(学习.学号 not in

(select distinct学号 from 学习 where 分数<80)) (3)

update 学生

set 奖学金=’1000’

where 学号 in(select distinct学习.学号 from 学生,学习

———————————————————————————————————————————— 北京大学出版社 41 ISBN 7-301-10173-2/TP.0842

where (奖学金 is null) and (学生.学号=学习.学号) and(分数=100)) (4)

create view AAA as

select distinct 课程号,名称,学分 from 课程,学习

where (课程.课程号=学习.课程号) and(分数=100)

《SQL数据库管理与开发教程与实训》试题(K卷)

吴建明 老师

一、选择题(每题1分,共20分)

1.若某表满足1NF,且其所有属性合起来组成主健,则一定还满足范式 ( )

A、只有2NF B、只有3NF C、2NF和3NF D、没有

2.Microsoft SQL Server 2000各版本的服务器组件必须在特定的操作系统上使用,其中

能在Windows 2000 Professional上运行,但不能在Windows 98上运行的是( ) A、企业版 B、标准版 C、个人版 D、开发版

3.SQL Server支持在线备份,但在备份过程中,不允许执行的操作是( )

(1)、创建或删除数据库文件 (2)、创建索引 (3)、执行非日志操作 (4)、自动或手工缩小数据库或数据库文件大小 A、(1) B、(1)(2) C、(1)(2)(3) D、(1)(2)(3)(4) 4.MS SQL Server 2000是( )

A、数据库应用程序 B、数据库系统 C、层次数据管理系统 D、关系数据库管理系统

5.现有关系:学生(学号,姓名,系号,系名),为消除数据冗余,至少需要分解为( )

A、1个表 B、2个表 C、3个表 D、4个表

6.数据库中存放三个关系:学生(学号,姓名)和课程(课程号,课程名)和成绩(学号、

课程号、成绩),为快速查出某位学生所学的课程名,应该( ) A、在学生表上按学号建索引 B、在成绩表上按课程号建索引 C、在课程表上按课程号建索引 D、在学生表上按姓名建索引 7.如果要从数据库中删除触发器,应该使用SQL语言的命令( )

A、DELETE TRIGGER B、DROP TRIGGER C、REMOVE TRIGGER D、DISABLE TRIGGER

8.已知员工和员工亲属两个关系,当员工调出时,应该从员工关系中删除该员工的元组,

同时在员工亲属关系中删除对应的亲属元组。在SQL语言中利用触发器定义这个完整性约束的短语是( ) A、INSTEAD OF DELETE B、INSTEAD OF DROP C、AFTER DELETE D、AFTER UPDATE

9.安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库记录了一个SQL

Server系统的所有系统信息,这个数据库是( ) A、master数据库 B、model数据库 C、tempdb数据库 D、pubs数据库

10.对于数据库的管理,对SQL Server中guest用户的描述错误的是 ( )

———————————————————————————————————————————— 北京大学出版社 42 ISBN 7-301-10173-2/TP.0842

A、安装系统时,guest用户被加入到master、pubs、tempdb、northwind数据中 B、用户成功登录到SQL Server后,若该登录账号在某数据库中无合法数据库用户,则系统将可能允许以guest用户来访问该数据库 C、不能从master、tempdb数据库中删除guest用户 D、在新建一个数据库时,guest用户将被自动添加

11.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职

员,从部门到职员的联系类型是( ) A、多对多 B、一对一 C、多对一 D、一对多

12.以下情况发生,往往要求我们立即对master 数据库进行备份,错误的是( )

A、增加用户数据库 B、删除用户数据库 C、执行与登录有关的操作 D、增加数据库用户

13.SQL语言中,删除一个表中所有数据,但保留表结构的命令是( )

A、DELETE B、DROP C、CLEAR D、REMORE 14.下列四项关于启动服务器的说法不正确的是( )

A、用企业管理器启动 B、用操作系统控制面板中的服务管理程序启动 C、用命令net begin mssqlserver D、自动启动服务器 15.查询员工工资信息时,结果按工资降序排列,正确的是( )

A、ORDER BY 工资 B、ORDER BY 工资 desc C、ORDER BY 工资 asc D、ORDER BY 工资 dictinct 16.下列聚合函数中正确的是( )

A、SUM (*) B、MAX (*) C、COUNT (*) D、AVG (*) 17.SQL中,下列涉及通配符的操作,范围最大的是( )

A、name like ’hgf#’ B、name like ’hgf_t%’ C、name like ’hgf%’ D、name like ’h#%’ escape ’#’ 18.在MS SQL Server中,关于数据库的说法正确的是( )

A、一个数据库可以不包含事务日志文件

B、一个数据库可以只包含一个事务日志文件和一个数据库文件

C、一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件 D、一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件 19.能够实现执行SQL语句、分析查询计划、显示查询统计情况和实现索引分析等功能的SQL

工具是( )。 A、企业管理器 B、查询分析器 C、服务管理器 D、事件探查器 20.每个数据库有且只有一个( )

A、主要数据库文件 B、次要数据库文件 C、日志文件 D、索引文件

三、填空题(每题2分,共10分)

1.MS SQL Server提供多个图形化工具,其中用来启动、停止和暂停SQL Serve的图形化工具称为_______________。

2._________是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。

———————————————————————————————————————————— 北京大学出版社 43 ISBN 7-301-10173-2/TP.0842

3.在______________身份验证模式,输入的账号必须是在2000 professional(或NT)已

经建立的登录者或组。

4.HAVING子句与WHERE子句很相似,其区别在于:

WHERE子句作用的对象是______________,HAVING子句作用的对象是________________。 5.已知有学生关系S(SNO,SNAME,AGE,DNO),各属性含义依次为学号,姓名、年龄和

所在系号;学生选课关系SC(SNO,CNO,SCORE),各属性含义依次为学号、课程号和成绩。分析以下SQL语句: SELECT SNO FROM SC

WHERE SCORE= (SELECT SUM(SCORE) FROM SC

WHERE CNO='002')

简述上述语句完成了的查询操作是_____________________________________________。 6. 表或视图的操作权限有select、___________、___________、___________和dri。 7.创建、修改和删除表命令分别是create table、_________ table和_________ table。

四、设计题(共50分)

设有学生选修课程数据库,

学生表(学号,姓名,年龄,性别,所在系,地址,出生日期) 选课表(学号,课程号,成绩)

课程表(课程号,课程名称,教师姓名) 用SQL语言查询下列问题:

1)李老师所教的课程号、课程名称。 2)年龄大于23岁的女学生的学号和姓名。 3)“李小波”所选修的全部课程名称。

4)所有成绩都在80分以上的学生姓名及所在系。 5)没有选修“操作系统”课的学生姓名。 6)英语成绩比数学成绩好的学生。

7)至少选修两门以上课程的学生姓名、性别。 8)选修了李老师所讲课程的学生人数。 9)没有选修李老师所讲课程的学生。

10)“操作系统”课程得最高分的学生姓名、性别、所在系。

———————————————————————————————————————————— 北京大学出版社 44 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(K卷)答案

一、选择题(每题1分,共20分) 1 2 3 4 5 6 7 8 C D D D B D B C 11 12 13 14 15 16 17 18 D D A C B C C B 三、填空题(每题1分,共10分) 服务管理器 1 存储过程 2 Windows 3 表和视图,分组 4 检索有与课程号为“002”的课程的最高成绩相等的同学的学号 5 insert、update、delete alter、drop 四、设计题(共50分) 1)

select 课程号, 课程名称 from 课程表

where 教师姓名='李老师' 2)

select 学号, 姓名 from 学生表 where (性别='女') and (年龄>23) 3)

select 课程名称 from 课程表 where 课程号 in

(select 选课表.课程号 from 选课表,学生表

where (选课表.学号=学生表.学号) and (学生表.姓名='李小波')) 4)

select 姓名, 所在系 from 学生表 where 学号 in (select distinct 学号from 选课表 where 成绩 >= 80)

5)没有选修“操作系统”课的学生姓名。 select distinct 学生表.学号, 姓名 from 学生表, 选课表, 课程表

where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号) and (课程名称 <>'操作系统')

6)英语成绩比数学成绩好的学生。

create function 课程成绩(@课程名 nchar(255), @学号 char(6)) returns numeric as

———————————————————————————————————————————— 北京大学出版社 45 ISBN 7-301-10173-2/TP.0842

9 A 19 B 10 D 20 A begin

declare @i numeric

select @i=成绩 from [选课表], [课程表]

where (学号 = @学号) and ([选课表].[课程号] =[课程表].[课程号]) and ([课程名

称] = @课程名) return @i end

select 学号, 姓名,

英语成绩= dbo.课程成绩('英语',学号), 数学成绩= dbo.课程成绩('数学',学号) from 学生信息表

where dbo.课程成绩('英语',学号)>dbo.课程成绩('数学',学号)

7)至少选修两门以上课程的学生姓名、性别。 select [姓名], [性别] from [学生表] where [学号] in

(SELECT [学号] FROM [选课表]

group by [学号] having count([学号])>1)

8)选修了李老师所讲课程的学生人数。 select count(学号) from 选课表, 课程表

where (选课表.课程号=课程表.课程号) and (教师姓名='李老师')

9)没有选修李老师所讲课程的学生, select distinct 学生表.学号, 学生表.姓名 from 学生表, 选课表, 课程表

where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号) and (教师姓名<>'李老师')

10)“操作系统”课程得最高分的学生姓名、性别、所在系。 select top 1 学生表.学号, 姓名, 所在系 from 学生表, 选课表, 课程表

where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号) and (课程名称 = '操作系统') order by 成绩 desc

《SQL数据库管理与开发教程与实训》试题(L卷)

王鹏 老师

一、单项选择题(每小题1分,共10分)

1. 在查询分析器中执行SQL语句的快捷键是( )。 A.F1 B.F3 C.F5 D.F6

————————————————————————————————————————————

北京大学出版社 46 ISBN 7-301-10173-2/TP.0842

2. SQL语言中,删除一个表的命令是( )。

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

3. 哪个关键字用于测试跟随的子查询中的行是否存在( )。

A.MOV B.EXISTS C.UNION D.HAVING 4. 以哪个符号开头的变量是全局变量( )。

A.@ B.@* C.@@ D.@$ 5. 下面哪项是一元运算符( )。

A./ B.% C.> D.-

6. 如果在一个关系中,存在某个属性(或属性组),虽然不是该关系的主码或只是主码的

一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的 A.候选码 B.主码 C.外码 D.连接码

7. 事务的持久性是由数据库管理系统中的哪个部件负责( )

A. 恢复管理 B. 锁定设备(并发控制) C. 完整性约束 D. 记录设备(存储管理) 8. E-R模型用于数据库设计的哪一个阶段( )。

A.需求分析 B.概念结构设计 C. 逻辑结构设计 D.物理结构设计

9. 查询语句select stuff('he rld',3,l, 'llo wo')结果为( )。

A.hello B.world hello C.hello world D.world

10. 在Student表中基于StuName字段建立的索引属于( )。

A.惟一索引 非聚集索引 B.非惟一索引 非聚集索引 C.聚集索引 非惟一索引 D.惟一索引 聚集索引

三、填空题(每空1分,共20分)

1. 实体—联系模型的三要素是______________、____________和实体之间的联系。 2. 创建、修改和删除表语句分别是_________ table、_________ table和_________ table。 3. SQL Server的数据类型可分为_______数据类型和_______数据类型。

4. Transact-SQL语言有4部分元素组成,分别是:数据定义语言、________________、

______________ 和一些附加的语言元素。

5. 表或视图的操作权限有select、___________、___________、___________和dri。 6. 数据完整性分为_______完整性、________完整性、________完整性和用户自定义完整

性。

7. 将E-R图中的实体和联系转换为关系模型中的关系,这是数据库设计过程中

____________设计阶段的任务。

8. SQL Server复制把服务器分为______服务器、______服务器和订阅服务器三种。

9. SQL Server聚合函数有最大、最小、求和、平均和计数等,它们分别是max、_______、

_______、avg和count。

五、设计题(共40分)

在[Xk]数据库中有

———————————————————————————————————————————— 北京大学出版社 47 ISBN 7-301-10173-2/TP.0842

课程表[Course]由课程编码(CouNo)、课程名称(CouName)、教师名(Teacher)等组成, 学生表[Student]由学号(StuNo)、学生姓名(StuName)、班级编号(ClassNo)等组成, 学生选课表[StuCou] 由学号(StuNo)、课程编码(CouNo)等组成。

1. 检索Xk数据库中的课程表(Course)中的教师名(Teacher)、课程编码(CouNo)、课

程名称(CouName),要求检索结果首先按照教师名降序排列,教师名相同时,则按照课程号升序排列。(5分)

2. 使用IN关键字检索Xk数据库中的课程表(Course),要求检索课程编码(CouNo)不为

'004'、'007'、'013' (5分)

3. 从Xk数据库中的Student表中检索第二个字为'宝'的学生名字。(5分)

4. 使用Transact-SQL语句在XK数据库中创建一个名为[p_StudentPara]的存储过程。该存

储过程能根据给定的班级返回该班级代码对应的Student表中的记录。并赋值查询班级代码为'20000001'和'20000002'的学生记录。(5分)

5. 创建一个触发器,要求当插入、更新、删除StuCou表的选课记录时,能更新Course表中

相应的报名人数。(10分)

6. 在SQL查询分析器的查询窗口中创建一个尺寸为5MB的逻辑名字为newxk的数据库, 3MB

的数据文件NEW_DATA.MDF存储在C:\\下,文件的最大尺寸为10MB,文件增量为1MB。2MB的事务日志文件NEW_LOG.LDF存储在C:\\下,文件的最大尺寸为15MB,文件的增量为1MB。(10分)

———————————————————————————————————————————— 北京大学出版社 48 ISBN 7-301-10173-2/TP.0842

《SQL数据库管理与开发教程与实训》试题(L卷)参考答案

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

1. 实体、属性

2. create、alter、drop 3. 系统、用户自定义

4. 数据操作语言、数据控制语言 5. insert、update、delete 6. 域、实体、参照 7. 逻辑结构 8. 发布、分发 9. min、sum

五、设计题

1. USE Xk

GO

SELECT Teacher AS '教师名',CouNo AS '课程号',CouName AS '课程名' FROM Course

ORDER BY Teacher DESC,CouNo GO 2. USE Xk

GO

Select CouName as ‘课程名称’ From Course

Where CouNo='004' or CouNo='007' or CouNo='013' go 3. USE Xk

GO

Select * From Student WHERE StuName LIKE '_宝%' GO

4. CREATE PROCEDURE p_StudentPara

@ClassNo VARCHAR(8) AS

SELECT * FROM Student WHERE ClassNo=@ClassNo GO

EXEC p_StudentPara @ClassNo='20000001' GO

EXEC p_StudentPara @ClassNo='20000002' GO 5. USE Xk

GO

CREATE TRIGGER SetWillNum ON StuCou FOR INSERT, UPDATE, DELETE

———————————————————————————————————————————— 北京大学出版社 49 ISBN 7-301-10173-2/TP.0842

AS

UPDATE Course SET WillNum=WillNum+1 WHERE CouNo=(SELECT CouNo FROM INSERTED) UPDATE Course SET WillNum=WillNum-1 WHERE CouNo=(SELECT CouNo FROM DELETED) UPDATE StuCou SET CouNo='002' WHERE StuNo='00000011' AND CouNo='003'

6. CREATE DATABASE NEW

ON

(NAME =NEW_data,

FILENAME ='C:\\NEW_data.mdf', SIZE=3, MAXSIZE=10, FILEGROWTH=1) LOG ON

(NAME ='NEW_log',

FILENAME='C:\\NEW_log.ldf', SIZE =2MB, MAXSIZE= 15MB, FILEGROWTH=1MB) GO

《SQL数据库管理与开发教程与实训》试题(M卷)

王鹏 老师

一、单项选择题(每小题1分,共10分)

1. 下列四项中,不属于数据库特点的是( )。

A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高

2. 反映现实世界中实体及实体间联系的信息模型是( )。

A.关系模型 B.层次模型 C.网状模型 D.E-R模型 3. 下列四项中,不正确的提法是( )。

A.SQL语言是关系数据库的国际标准语言

B.SQL语言具有数据定义、查询、操纵和控制功能 C.SQL语言可以自动实现关系数据库的规范化 D.SQL语言称为结构查询语言

4. 在SQL中,SELECT语句的\表示查询结果中 ( )

A.属性名都不相同 B.去掉了重复的列 C.行都不相同 D.属性值都不相同 5.在数据操作语言(DML)的基本功能中,不包括的是 ( )

A.插入新数据 B.描述数据库结构 C.修改数据 D.删除数据

6. 在采用客户机/服务器体系结构的数据库应用系统中,应该将用户应用程序安装在

( ) A.客户机端 B.服务器端 C.终端 D.系统端

————————————————————————————————————————————

北京大学出版社 50 ISBN 7-301-10173-2/TP.0842