SQL - server - 16套试题

更新时间:2024-03-29 09:22:02 阅读量: 综合文库 文档下载

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

《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

5. 在SQL中,建立表用的命令是 ( B )。

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语言是关系数据库的国际标准语言 B.SQL语言具有数据定义、查询、操纵和控制功能 C.SQL语言可以自动实现关系数据库的规范化 D.SQL语言称为结构查询语言

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

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

9.SQL语言中,删除表中数据的命令是( A )。

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

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

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

二、判断题(每空1分,共10分)

1.'在那遥远的地方' 是SQL中的字符串常量吗?Y 2.'11.9' 是SQL中的实型常量吗N 3.select 16%4, 的执行结果是: 4 吗?N 4.2005.11.09 是SQL中的日期型常量吗?N 5.¥2005.89 是SQL中的货币型常量吗?N 6.select 25/2 的执行结果是: 12.5 吗?N 7.'岳飞'>'文天祥' 比较运算的结果为真吗?Y 8.一个表可以创建多个主键吗?N

9.创建唯一性索引的列可以有一些重复的值?N

10.固定数据库角色:db_datarader 的成员能修改本数据库内表中的数据吗?N

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

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______。

四、简答题(每小题5分,共10分)

1.在SQL Server 2000中,使用视图的好处是什么? (1) 为用户集中需要的数据,简化了数据的用户操作; (2) 对用户隐藏了数据库设计的复杂性 (3) 简化用户权限的管理

(4) 组织数据导出到其它应用程序;

2.在SQL Server 2000中,用户访问表/视图、列的权限是什么? 2. 1.数据表/视图(select insert update delete) 2.列(字段)的访问(select update)

五、设计题(共50分)

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

同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 宿舍表(宿舍号 char(6),宿舍电话) 用SQL语言实现下列功能的sql语句代码: 1.创建数据库[我班同学数据库]代码(2分)。 2.创建数据表[宿舍表]代码(3分);

no 1. 参考答案 create database [我班同学数据库] go use [我班同学数据库] go 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 execute [某宿舍同学] '101' exec sp_addlogin 'U班主任', '888', '我班同学数据库' exec sp_grantdbaccess 'U班主任', 'U读者' 2. 3. 4. 5. 6. 7. 8. 9.

exec sp_addrolemember 'db_datareader', 'U读者'

宿舍表(宿舍号 char(6),宿舍电话)

要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码 3.创建数据表[同学表]代码(6分);

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

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

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

修改 宿舍号为101的 宿舍电话:6331158 删除 宿舍号为102的 宿舍信息 5.创建视图[同学表视图]代码(5分);

同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话) 6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。(4分) 7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。(5分) 8.创建带参数的存储过程[某宿舍同学]:姓名, 性别, 宿舍电话 执行此过程,查询'101'宿舍情况 (8分)

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

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

马建鹏 老师

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

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

用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。

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

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

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

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

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

4. 下列哪个不是sql 数据库文件的后缀。c

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

5. 数据定义语言的缩写词为 ( a )。

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

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

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

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

7. SQL的视图是从( c )中导出的。

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

8. 在SQL语言中,建立存储过程的命令是(a)

A、CREATE PROCEDURE B、CREATE RULE

C、CREATE DURE D、CREATE FILE

9. SQL语言中,删除表中数据的命令是( a )。

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

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

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

二、判断题(每空1分,共15分)

1. '在那遥远的地方' 是SQL中的字符串常量吗?y 2. 11.9 是SQL中的实型常量吗y

3. select 16%4, 的执行结果是: 0 吗?y 4. 2005.11.09 是SQL中的日期型常量吗?x 5. ¥2005.89 是SQL中的货币型常量吗?x 6. select 25/2 的执行结果是: 12.5 吗?x 7. '李逵'>'李鬼' 比较运算的结果为真吗?y 8. 一个表可以创建多个主键吗?x

9. 创建唯一性索引的列可以有一些重复的值?x 10. smallint 是SQL的数据类型吗?y 11. SQL Server不允许字段名为汉字?x

12. 职称 in ('教授', '副教授'')与 职称 = '教授' or 职称 = '副教授' 等价吗?y 13. 如果规则当前绑定到某列或用户定义的数据类型,不能解除绑定能直接删除规则?x 14. 在表中创建一个标识列(IDENTITY),当用户向表中插入新的数据行时,系统自动为该行标

识列赋值吗?y

15. 固定数据库角色:db_datarader 的成员修改本数据库内表中的数据吗?x

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

1. SQL Server 2000局部变量名字必须以______@__开头,而全局变量名字必须以___@@___开

头。

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

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

beautiful ____和__我心中的太阳__。

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)的

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

四、简答题(每小题5分,共10分)

1. 简述SQL Server 2000的安全性管理机制(6级,涉及登录账号、用户、角色以及权限分

配)。(6分)

2. 在SQL Server 2000中,使用视图的好处是什么?(4分)

五、设计题(共45分)

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

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

用SQL语言实现下列功能的sql语句代码。 1. 创建数据库[学生成绩数据库]代码(2分)。 2. 创建数据表[课程信息表]代码;(2分) 课程信息表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) 3. 创建数据表[学生信息表]代码;(4分)

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

要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别) 4. 创建数据表[成绩信息表];(5分) 成绩信息表(ID,学号,课号,分数)

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

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

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

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

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

8. 查询有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4分) 9. 创建带参数的存储过程[某门课程高低均分]、执行该过程的代码(7分) 存储过程功能:查询某门课程的最高分、最低分、平均分;

执行该过程,查询所有修’专业英语’这门学生的最高分、最低分、平均分;

10 设置一SQL身份验证的用户账户:登录名:U院长,密码:888,数据库用户名:U读者,

权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。请写出账户、权限设置的T_SQL脚本。(6分) 一、 1 2 3 4 5 6 7 8 9 10 A D C C A A C A A D 二、 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Y Y 三、 no 1. 2. 3.

Y N N N Y N N Y N 分 2 2 2 Y N Y N 答案 @、@@ 68、C beautiful、我心中的太阳

4. 5. 6. 7. 8. 9. 四、 no 1. 水平、垂直 选择、投影 实体、域 算术、逻辑 6、7 17、-215、13.4400、-18.4560 答案要点 2 2 2 2 2 4 分 6 1. 计算机的连接 2. SQL Server登录(账户、固定服务器角色) 3. 库的访问(用户/角色:固定/自定义角色) 4. 表/视图的权限(select insert update delete) 5. 存储过程、内嵌表值函数的权限(execute select) 6. 表(视图)中列的权限(select update) 2. (1) 为用户集中需要的数据,简化了数据的用户操作; 4 (2) 对用户隐藏了数据库设计的复杂性; (3) 简化用户权限的管理 (4) 组织数据导出到其它应用程序 参考答案 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 课号='100102' 分 2 五、 no 1. 2. 2 3. 4 4. 5 5. 8

delete 课程信息表 where 课号='100101' 6. 5 create view [成绩信息表视图] as select 成绩信息表.学号,姓名,成绩信息表.课号,名称 课程名称,分数 from 成绩信息表,学生信息表,课程信息表 where 成绩信息表.学号=学生信息表.学号 and 成绩信息表.课号=课程信息表.课号 select 姓名, 性别, 民族 from 学生信息表 where 姓名 like '刘%' and 性别='女' select 学号, 姓名 from 学生信息表 where 学号 in (select distinct 学号 from 成绩信息表 where 分数<60) 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读者' 2 7. 8. 4 9. 7 10 6

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

杜兆将 老师

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

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

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

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

用数据库系统。

A.关系 B.面向对象 C.分布

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

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

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

应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。

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

5. 在SQL中,建立视图用的命令是 ( c )。

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

6. SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且( a )A.包括20岁和30岁 B.不包括20岁和30岁

C.包括20岁但不包括30岁 D.包括30岁但不包括20岁

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

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

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

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

二、判断题(每空1分,共10分)

1. \在那遥远的地方\是SQL中的字符串常量吗? x 2. \是SQL中的实型常量吗? x

3. 语句 select 16%4, 的执行结果是: 0 吗?y 4. \是SQL中的日期型常量吗? x 5. ¥2005.89 是SQL中的货币型常量吗? x 6. 语句 select 15/2 的执行结果是: 7.5 吗?x 7. '李白'>'杜甫' 比较运算的结果为真吗?y

8. 在事务中包含create database语句吗?x 9. 创建唯一性索引的列可以有一些重复的值?x

10.固定数据库角色:db_datawriter 的成员删除本数据库内任何表中的数据吗?y

三、填空题(每空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中,数据库对象包括数据表、______、______、触发器、规则、默认和用户自定义的数据类型等。

四、简述题(每小题5分,共10分)

1. 简述使用游标的步骤。

2. 简述SQL Server 2000的安全性管理机制,涉及登录账号、用户、角色以及权限分配。

五、设计题(共50分)

现有关系数据库如下:

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

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

用SQL语言实现下列功能的sql语句代码: 1. 创建数据库[学生成绩数据库]代码(2分); 2. 创建[课程表]代码(2分); 课程表(课号 char(6),名称) 要求使用:主键(课号)、非空(名称) 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分)

《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. 简述使用游标的步骤。

(1) 声明游标:declare 游标名 cursor for select语句; (2) 打开游标:open 游标名;

(3) 处理数据: fetch delete update (4) 关闭游标:close 游标名;

(5) 释放游标:deallocate 游标名;

2. 要点:

1. 计算机的连接

2. SQL Server服务器登录(登录、固定服务器角色) 3. 数据库的访问(用户/角色:固定/自定义数据库角色) 4. 数据表(视图)的访问(select insert update delete) 5. 存储过程/内嵌表值函数的访问(execute/select) 6. 数据表(视图)中列(字段)的访问(select update)

五、设计题

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', '西班牙语')

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', '学生成绩数据库' exec sp_grantdbaccess 'U领导', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

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

刘占文 老师

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

1.数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、( d )和用户构成。

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

2.数据库管理系统的英文缩写是( a )。

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

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

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

4.数据库设计中的逻辑结构设计的任务是把( d )阶段产生的概念数据库模式变换为逻辑结构的数据库模式。

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

5.一个规范化的关系至少应当满足( c )的要求。

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

6.在实际数据库设计中,“学号”通常作为( c )存在。

A.数据结构 B.数据存储 C.数据项目 D.处理过程

7.SQL Server 2000中删除表中记录的命令是( d )。

A.DELETE B.SELECT C.UPDATE D.DROP

8.运行命令SELECT ASCII(‘Alklk’) 的结果是( d )。

A.48 B.32 C.90 D.65

9.在SQL中,建立视图用的命令是 ( c )。

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

10.在MS SQL Server中,用来显示数据库信息的系统存储过程是( d )A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb

二、判断题(每空1分,共10分)

1.连接、选择和投影三种关系运算具有相同的结果。x 2.数据的安全性主要防范的对象是合法用户。x 3. 数据库设计前只需选择数据库分析设计人员。x 4. 恢复是利用冗余数据来重建数据库。y

5.定义外键级级联是为了保证相关表之间数据的一致性吗?y 6.创建唯一性索引的列可以有一些重复的值?x 7.存储过程的输出结果可以传递给一个变量。y

8.视图具有与表相同的功能,在视图上也可以创建触发器。x 9.能在游标中删除数据记录。y

10.SQL Server 2000不具有数据的导入与导出功能。x

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

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

3.__________是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。 4.__________是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。 5.事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么______,要么________(如果在操作执行过程中不能完成其中任一操作)。 6. SQL Server 2000 采用的身份验证模式有________________模式和________模式。 7.用户访问SQL Server数据库时,经过了两个_______验证和________验证安全验证阶段。 8.SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和________________备份。 9.SQL Server代理主要由______、______和警报来组成。

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

四、简述题(每小题5分,共20分)

1. 试述关系的含义和性质。(7分) 2. 什么是事务?(6分)

3. 事务控制语句的使用方法是什么?(7分)

五、设计题(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 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 根据以上要求编写程序,并指出本题定义的事务是否成功提交。

《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.关系是笛卡尔积的有意义的子集,用二维表格表示; 关系的性质如下:

关系表中的每一列都是不可再分的基本属性; 表中的各属性不能重名; 表中的行、列次序不分前后; 表中的任意两行不能完全相同。

2.事务(Transaction)可以看成是由对数据库若干操作组成的一个单元,这些操作要么都完成,要么都取消(如果在操作执行过程中不能完成其中任一操作)。在SQL Server 2000中,事务是由一条或者多条Transact-SQL语句组成的一个工作单元,这些语句要么都正常执行,要么如果有其中任意一条语句执行失败被取消的话,这些语句的执行都被取消。SQL利用事务机制保证数据修改的一致性,并且在系统出错时确保数据的可恢复性。

3.事务控制语句的使用方法 begin transaction

?? -- A组语句序列 save transaction 保存点1 ?? -- B组语句序列 if @@error <> 0

rollback transaction 保存点1 --回滚到:保存点1 else

commit transaction --提交A组语句,同时如果未回滚B组语句则提交B组语句。

五、设计题

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

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.( c )是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。

A.DATA B.INFORMATION C.DB D.DBS 2.需求分析的主要方法是( a )。

A.自顶向下 B.自底向上 C.从左到右 D.混合策略 3.在关系运算中,选取符合条件的元组是( d )运算。

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

4.关系数据库的规范化理论指出,关系数据库中的关系应满足一定的要求,最起码的要求是达到1NF,既满足( d )。

A.主关键字唯一标识表中的每一行 B.关系中的行不允许重复

C.每个非关键字列都完全依赖于主关键字 D.每个属性都有是不可再分的基本数据项 5.SQL Server 2000中表查询的命令是( b )。

A. USE B.SELECT C.UPDATE D.DROP

6.SQL Server 2000中表更新数据的命令是( c )。

A.USE B.SELECT C.UPDATE D.DROP 7.在SQL Server 2000中,下列变量名正确的是( a )。

A.@sum B.j C.sum D.4kk 8.建立索引的目的是( d )。

A.降低SQL Server数据检索的速度 B.与SQL Server数据检索的速度无关 C.加快数据库的打开速度

D.提高SQL Server数据检索的速度 9.用于求系统日期的函数是( ab )。

A.YEAR() B.GETDATE() C.COUNT() D.SUM() 10.向用户授予操作权限的SQL语句是( d )。

A.CTEATE B.REVOKE C.SELECT D.GRANT

二、判断题(每空1分,共10分)

1.数据的完整性主要防范的对象是非法用户。x 2.概念结构设计的工具是E—R模型。y 3.写程序不属于数据库的模式设计阶段。y

4.设计好的数据库管理系统在投入使用后出现问题由使用方负责。x 5.规则必须使用一次就必须定义一次。 x 6.缺省情况下,所创建的索引是非聚集索引?y

7.自定义函数在对任何表的查询中都可以使用。 y 8.触发器是可在程序中被调用执行。 x 9.游标中可发插入数据记录。 x 10.sa能否创建和删除数据库角色?y

三、填空题(每空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分,共20分)

1.简述数据库设计过程中需求分析、概念结构设计、逻辑结构设计各个阶段所要完成的任务。

2.存储过程与触发器有什么不同? 3.什么是游标? 4.什么是事务?

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

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

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

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

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

要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、检查(性别) 4. 创建[成绩表]代码(2分); 成绩表(学号,课程号,分数)

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

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

登录名:U领导 密码:888

数据库用户名:U读者

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

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

《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.①需求分析阶段的主要任务是通过调查,了解原系统的工作概况,明确用户的各种需求,收集支持系统目标的基础数据及其处理方法,

②概念结构设计的主要任务是对需求分析的结果进行综合、归纳,从而形成一个独立于具体数据库管理系统的概念数据模型。

③逻辑结构设计阶段的主要任务是将概念结构设计的结果转换为某个具体的数据库管理系统所支持的结构数据模型,并对其进行优化。

2.答:触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。

3.答: 游标是允许用户能够从select语句查询的结果集中,逐条逐行地访问记录,可以按照自己的意愿逐行地显示、修改或删除这些记录的数据访问处理机制。

4.答:事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,如果这些操作在执行过程中任何一条操作不能正常完成的话,就取消单元中的所有操作,要么单元中的所有操作都正常完成。

五、设计题

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 学生表(学号), [课程号] 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)。

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

2.下列标识符可以作为局部变量使用( c)。

A. Myvar B. My var C. @Myvar D. @My var

3.以下关于主键的描述正确的是( a )。

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

C.只允许以表中第一字段建立 D.表中允许有多个主键

4.为数据表创建索引的目的是(a )。

A.提高查询的检索性能 B.创建唯一索引 C.创建主键 D.归类

5.下列哪个不是sql 数据库文件的后缀。a

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

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

A.保存 B.编译 C.解释 D.编写

7.数据定义语言的缩写词为 ( a)。

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

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

A.外键并不一定要与相应的主键同名 B.外键一定要与相应的主键同名 C.外键一定要与相应的主键同名而且唯一 D.外键一定要与相应的主键同名,但并不一定唯一

9.在数据库设计中使用E-R图工具的阶段是( d)。

A.需求分析阶段 B.数据库物理设计阶段 C.数据库实施 D.概念结构设计阶段

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

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

二、判断题(每空1分,共10分)

1. 因为通过视图可以插入.修改或删除数据,因此视图也是一个实在表,SQL SERVER将它保

存在syscommens系统表中。x

2. guest用户必须关联一个登录账号才可以在数据库中创建。数据库中的非guest用户账号

都必须关联一个登录账号。x

3. 可以在企业管理器中修改数据库的名称。x

4. 恢复数据,可以在查询分析器中使用这样的命令:BACKUP DATABASE database_name FROM

backup。x

5. DELETE语句只是删除表中的数据,表本身依然存在数据库中。y 6. 每个存储过程向调用方返回一个整数返回代码。如果存储过程没有显式设置返回代码的值,

则返回代码为 0,表示成功。y 7. 在数据库中建立的索引越多越好。x

8. 在SQL SERVER中,触发器的执行是在数据的插入.更新或删除之前执行的。x 9. 并发性就是两个或两个以上的用户同时对数据执行的操作。y 10.通配符“_”表示某单个字符。y

三、填空题(每空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命令分别为________、________和________

视图的命令。

四、简述题(每小题5分,共10分)

1.简述规范设计方法中,数据库应用系统开发的全过程。 2.创建数据库有那几种方法?

五.设计题(每小题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表中。

《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.简述按照规范设计方法进行数据库设计的全过程。 需求分析; 概念结构设计; 逻辑结构设计; 物理结构设计; 数据库实施;

数据库运行和维护。

2.创建数据库有那几种方法? 有3种创建数据库的方法: CREATE DATABASE语句; 创建数据库向导; 企业管理器。

五、设计题

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

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. 下列四项中说法不正确的是( c)

A.数据库减少了数据冗余 B.数据库中的数据可以共享

C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性

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

从部门到职员的联系类型是(d)

A.多对多 B.一对一 C.多对一 D.一对多

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

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

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

4. 在SQL Server 中,model是( b)

A.数据库系统表 B. 数据库模板 C.临时数据库 D. 示例数据库

5.在视图上不能完成的操作是( c)

A.更新视图数据 B.查询

C.在视图上定义新的基本表 D.在视图上定义新视图

6. 数据库的三要素,不包括(c )

A.完整性规则 B.数据结构 C.恢复 D.数据操作

7.一个规范化的关系至少应当满足( c )的要求。

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

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

A. 概念模型 B. 逻辑模型 C. 外部模型 D. 物理模型

9. 下列哪个不是sql 数据库文件的后缀。c

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

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

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

二、判断题(每空1分,共10分)

1.数据库不允许存在数据冗余。x

2.每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务器。y 3. 一个表可以创建多个主键。x

4.在SQL Server系统中,数据信息和日志信息不能放在同一个操作系统文件中。y 5.固定数据库角色:db_datarader 的成员修改本数据库内表中的数据。y

6.在使用子查询时,必须使用括号把子查询括起来,以便区分外查询和子查询。y 7.存储过程是存储在服务器上的一组预编译的Transcat-SQL语句。y 8.视图本身没有保存数据,而是保存一条查询语句。y

9.在表中创建一个标识列(IDENTITY),当用户向表中插入新的数据行时,系统会自动为该行

标识列赋值。y

10.创建触发器的时候可以不是表的所有者或数据库的所有者。x

三.填空题(每空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分,共10分)

1.什么是数据库备份和恢复?为什么要备份和恢复数据库? 2.关系规范化的基本思想是什么?

五.设计题(每小题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.删除计算机系所有学生的成绩记录。

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

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

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

6.insert、update、delete 7.原子、一致、独立、持久

8. 打开、关闭、释放

9.作业、操作员 10.发布、分发、订阅

四、简述题

1.什么是数据库备份和恢复?为什么要备份和恢复数据库? 数据库备份是指将当前的数据库系统、数据文件或日志文件复制到一个专门的备份服务器、活动磁盘或者其他能长期存储数据的介质上,作为副本。数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。一旦数据库因意外而遭损坏,这些备份文件可用来恢复数据库。

恢复是与备份相对应的数据库管理工作,数据库备份后,一旦数据库发生故障,就可以将数据库备份加载到系统,使数据库恢复到备份时的状态。系统进行数据库恢复的过程中,自动执行安全性检查,然后根据数据库备份自动创建数据库结构,并且恢复数据库中的数据。

2.关系规范化的基本思想是什么?

所谓关系的规范化,是指一个低一级范式的关系模式,通过投影运算,转化为更高级别范式的关系模式的集合的过程。我们把满足不同程度要求的关系称为不同的范式。

关系规范化的基本思想:逐步消除数据依赖中不合适的部分,使关系模式达到一定程度的分离,即“一事一地”的模式设计原则,使概念单一化,即让一个关系描述一个概念、一个实体或者实体间的一种关系。

五、设计题

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 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实用程序的是( d )。

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

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

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

3. 下列哪个不是数据库对象( a)。

A.数据模型 B.视图 C.表 D.用户

4. 下列哪个不是sql 数据库文件的后缀。c

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

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

6. SQL语言中,条件“年龄BETWEEN 40 AND 50”表示年龄在40至50之间,且( a )A.包括40岁和50岁 B.不包括40岁和50岁

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

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

8. 在MS SQL Server中,用来显示数据库信息的系统存储过程是( d )。A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 9. SQL语言中,删除记录的命令是( a )。

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

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

二、判断题(每空1分,共10分)

1. \是SQL中的字符串常量吗? x 2. \是SQL中的实型常量吗? x

3. 语句 select 22%4, 的执行结果是: 0 吗?y 4. \是SQL中的日期型常量吗? x 5. ¥2005.89 是SQL中的货币型常量吗? x 6. 语句 select 15/2 的执行结果是: 7.5 吗?x 7. 'AB'>'CD' 比较运算的结果为真吗?x

8. bigint是SQL的数据类型吗?y 9. 设置惟一约束的列可以为空吗?y 10.一个表可以创建多个主键吗?x

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

1. 关系数据库关系运算___________、_________和_________。

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

开头。

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

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

____________和___________。

5. 表或视图的操作权限有___________、___________、___________、___________和dri。 6. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。 7. SQL Server代理主要由______、______和警报来组成。

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

性。

四、简述题(每小题5分,共10分)

1. 有学生成绩表,要保证每个学生的每门课程惟一标识的话考虑使用数据完整性方法。 2. 简述数据完整性的类型以及如何确定使用哪个强制方法。

五、设计题(共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分)

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

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

2. @、@@ 3. 68

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

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

四、简述题

1. 将每个学生的学号和课程号定义为复合主键这样才能保证每个学生的每门课程惟一。

2. 要点:

(1)域完整性 :使用DEFAULT (默认值)、DEFAULT(默认技术)、CHECK(检查)、RULE (规则技术)的方法指定某列可接受值的范围或模式 (2)实体完整性:使用 PRIMARY KEY(主键)、UNIQUE(惟一键)、IDENTITY(标识列)来确保行的惟一性 (3)参照完整性:使用 FOREIGN KEY(外键) 保证列与参照列的一致性

五、设计题

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

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. 下列四项中说法不正确的是 (c )

A.数据库减少了数据冗余 B.数据库中的数据可以共享

C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性 2. 下列哪个不是SQL Server服务( d )。

A.SQL Server B.SQL Server Agent C.MS DTC D. PWS

3. 下列哪个不是数据库对象( a )。

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

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

A.服务器名 B.数据库名 C.对象名 D.文件夹名

5. 数据定义语言的缩写词为 ( a )。

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

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

A. IN (40,50) B. BETWEEN 40 AND 50 C. BETWEEN 40 OR 50 D. BETWEEN 40 ,50

7.表示职称为副教授同时性别为男的表达式为( b )

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

A. a12 B. 12a

C. @a12 D. #qq

9. SQL语言中,不是逻辑运算符号的( d )。

A. AND B. NOT C. OR D. XOR

10.下面哪个函数是属于字符串运算的( c )。

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

二、判断题(每空1分,共10分)

1. 视图和表是完全一样的? x

2. SQL Server允许用户自定义类型? y 3. 惟一键就是主键?x

4. SQL Server不允许字段名为汉字? x 5. ¥2005.89 是SQL中的货币型常量吗? x 6. 语句 select 15%2 的执行结果是: 7.5 吗?x 7. 作为字符串型数据'李白'是排在'杜甫' 的前面吗?x 8. smallint是SQL的数据类型吗?y 9. 设置惟一约束的列不允许为空?x 10.主键可以是复合键吗?y

三、填空题(每空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复制把服务器分为______服务器、______服务器和______服务器三种。

四、简述题(每小题5分,共10分)

1. 视图的好处是什么?

2. 流程控制语句包括哪些语句,他们各自的作用是什么?

五、设计题(共50分)

现有关系数据库如下:

数据库名:医院数据库

医生表(编号,姓名,性别,出生日期,职称) 病人表(编号,姓名,性别,民族,身份证号) 病历表(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分) 5. 写出创建: 输出某医生(根据医生编号即可)看病人数存储过程以及执行过程(要

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

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

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

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

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

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

8. '%娟%'

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

四、简述题

1.

(1) 为用户集中需要的数据,简化了数据的用户操作; (2) 对用户隐藏了数据库设计的复杂性; (3) 简化用户权限的管理

2. 要点:

1. IF?ELSE是条件判断语句

2. BEGIN ?END能将多个SQL语句组合成一个语句块,并视为一个单元处理 3. CASE多情况语句,将其中一个符合条件的结果表达式返回

4. WHILE?COUNTINUE?BREAK设置循环语句,COUNTINUE可以终止本次循环,开始下一次循环,BREAK中断循环,跳出循环外

5. GOTO可以使程序跳到指定的标有标识符的位置处继续执行 6. WAITFOR暂时停止执行SQL语句、语句块或者存储过程 7. RETURN无条件的终止一个查询、存储过程或批处理

五、设计题

1.

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

Top