文档库 最新最全的文档下载
当前位置:文档库 › SQL试题(附答案)

SQL试题(附答案)

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

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

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

A.数据共享

B.数据完整性

C.数据冗余很高

D.数据独立性高

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

A.企业管理器

B.查询分析器

C.服务管理器

D.媒体播放器

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

A.master

B.model

C.pub

D.msdb

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 15 AND 35表示年龄在15至35之间,且( )。

A.包括15岁和35岁

B.不包括15岁和35岁

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

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

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

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

B.SQL语言具有数据定义、查询、操纵和控制功能

C.SQL语言可以自动实现关系数据库的规范化

D.SQL语言称为结构查询语言

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'), char(67) 的执行结果是:_________和_________。

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

____________和___________。

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

割。

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

7.完整性约束包括______完整性、______完整性、参照完整性和用户定义完整性。

8.在SQL Server 2000中,数据库对象包括______、______、触发器、过程、列、索引、约

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

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

_________。

10.语句select round(13.4321,2), round(13.4567,3)的执行结果是:_________和

_________。

五、设计题(共50分)

现有关系数据库如下:

数据库名:我班同学数据库

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

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

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

1.创建数据库[我班同学数据库]代码(2分)。

2.创建数据表[宿舍表]代码(3分);

宿舍表(宿舍号 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分)

一、

1 2 3 4 5 6 7 8 9 10

C D C A B A C D A C

三、

no 答案分

1. 外模式、模式 2

2. @、@@ 2

3. 68、C 2

4. beautiful、我心中的太阳 2

5. 水平、垂直 2

6. 选择、投影 2

7. 实体、域 2

8. 表、视图 2

9. 6、7 2

10 13.4300、13.4570 2

五、

no 参考答案分

2

1. create database [我班同学数据库]

go

use [我班同学数据库]

go

3

2. create table 宿舍表

([宿舍号] char(6) primary key,

[宿舍电话] char(7) check([宿舍电话] like

'633[0-9][0-9][0-9][0-9]'))

6

3. 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 宿舍表(宿舍号)

)

8

4. insert 宿舍表values('101', '6331157')

insert 宿舍表values('102', '6331777')

update 宿舍表set 宿舍电话='6331158' where 宿舍号

='101'

delete 宿舍表where 宿舍号='102'

5

5. create view [同学表视图] as

select 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.

宿舍号, 宿舍电话

from 同学表,宿舍表

where 同学表.宿舍号=宿舍表.宿舍号

4 6. select 姓名, 性别, 宿舍电话

from 同学表视图

where 姓名like '张%' and 性别='女'

5 7. select 最大年龄= max(年龄), 最小年龄= min(年龄), 平

均年龄= avg(年龄)

from 同学表

where 性别='女'

8 8. create procedure [某宿舍同学] @宿舍号varchar(6)

as

select 姓名, 性别, 宿舍电话

from 同学表视图

where 宿舍号= @宿舍号

go

execute [某宿舍同学] '101'

9 9. exec sp_addlogin 'U班主任', '888', '我班同学数据库'

exec sp_grantdbaccess 'U班主任', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

《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的视图是从()中导出的。

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,学号,课号,分数)

要求使用:外键(学号,课号)、检查(分数),自动编号(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 Y N N N Y N N Y N Y N Y N 三、

no 答案分

1. @、@@ 2

2. 68、C 2

3. beautiful、我心中的太阳 2

4. 水平、垂直 2

5. 选择、投影 2

6. 实体、域 2

7. 算术、逻辑 2

8. 6、7 2

9. 17、-215、13.4400、-18.4560 4

四、

五、

no 参考答案分

2

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

go

use [学生成绩数据库]

go

2. create table 课程信息表

2 ([课号] char(6) primary key,

[名称] nchar(20) not null)

4

3. create table 学生信息表

([学号] char(6) primary key,

[姓名] nchar(4) not null,

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

[民族] nchar(8) default '汉族' not null,

[身份证号] char(18) unique

)

5

4. create table 成绩信息表

(ID int identity(1, 1),

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

[课号] char(6) references 课程信息表(课号),

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

)

8

5. insert 课程信息表values('100101', '西班牙语')

insert 课程信息表values('100102', '大学英语')

update 课程信息表set 名称='专业英语' where 课号

='100102'

delete 课程信息表where 课号='100101'

5 6. create view [成绩信息表视图]

as

select 成绩信息表.学号,姓名,成绩信息表.课号,名称课程

名称,分数

from 成绩信息表,学生信息表,课程信息表

where 成绩信息表.学号=学生信息表.学号and 成绩信息

表.课号=课程信息表.课号

7. select 姓名, 性别, 民族

2 from 学生信息表

where 姓名like '刘%' and 性别='女'

4 8. select 学号, 姓名

from 学生信息表

where 学号in

(select distinct 学号from 成绩信息表where 分数<60)

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

@课程名nchar(16) as

select 课程名称, 最高分=max(分数), 最低分=min(分数),

平均分=avg(分数)

from 成绩信息表视图

where 课程名称= @课程名

group by 课程名称

go

execute [某门课程高低均分] '专业英语'

6 10 exec sp_addlogin 'U院长', '888', '学生成绩数据库'

exec sp_grantdbaccess 'U院长', 'U读者'

exec sp_addrolemember 'db_datareader', 'U读者'

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

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

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

A.数据共享 B.数据完整性

C. 数据冗余很高

D.数据独立性高

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

商用数据库系统。

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

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

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分);

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.

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.数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、()和用户构成。

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)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么______,要么________(如果在操作执行过程中不能完成其中任一操作)。

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

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

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

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

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

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.建立索引的目的是()。

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),姓名,性别,民族)

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

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

成绩表(学号,课程号,分数)

要求使用:外键(成绩表.学号,成绩表.课程号)、检查(分数)

5. 将下列课程信息添加到课程表中

课号课程名称

100001 大学语文

100002 大学英语

6. 写出创建成绩表视图(学号,姓名,课程号,课程名称,成绩)的代码;

7. 写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分

8. 检索姓李的女同学的信息:姓名、性别、民族。

9. 设置SQL身份验证的账户:

登录名:U领导

密码:888

数据库用户名:U读者

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

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

相关文档