文档库 最新最全的文档下载
当前位置:文档库 › 《SQL数据库管理与开发》试题(E卷)

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

《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.用于求系统日期的函数是(B)。

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

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

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

1.数据的完整性主要防范的对象是非法用户。N

2.概念结构设计的工具是E—R模型。Y

3.写程序不属于数据库的模式设计阶段。Y

4.设计好的数据库管理系统在投入使用后出现问题由使用方负责。N

5.规则必须使用一次就必须定义一次。N

6.缺省情况下,所创建的索引是非聚集索引?Y

7.自定义函数在对任何表的查询中都可以使用。Y

8.触发器是可在程序中被调用执行。N

9.游标中可发插入数据记录。N

10.sa能否创建和删除数据库角色?Y

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

1.SQL语言主要由__数据定义语言(DDL)___、____数据操作语言(DML)_____和数据控制语言(DCL)组成。

2.SQL Server 2000采用的身份验证模式有Windows身份验证模式和__混合____模式。

3.语句 SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是____35_________。

4. __视图______是由一个或多个数据表(基本表)或视图导出的虚拟表。

5.____实体完整性___用于保证数据库中数据表的每一个特定实体的记录都是惟一的。

6.索引的类型有_____聚集索引_________和非聚集索引。

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

8.触发器定义在一个表中,当在表中执行__insert______、____update____或delete 操作时被触发自动执行。

9.事务的ACID属性是指__原子__性、__一致__性、___独立____性和__持久__性。

10.数据库管理系统的安全性通常包括两个方面,一是指数据___访问_____的安全性,二是指数据__运行_____的安全性。

11.SQL Server代理主要由___作业_____、操作员和___警报_____来组成。

12.SQL Server复制有快照复制、___事务_____复制和___合并____复制3种类型。

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

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

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

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

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

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

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

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

五、设计题(每小题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门,则回滚事务,即成绩无效,否则成功提交。

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

相关文档
相关文档 最新文档