资源描述
(装订线内不准做答)
线
订
装
SQL Server数据库技术 考试试卷(E)
题号
一
二
三
四
五
六
七
八
九
十
总分
核分教师
分值
10
10
20
20
40
100
得分
评卷教师
E
考试科目
SQL Server数据库技术
考试类型
高职期末考试 『闭卷』
学年学期
适用专业
年 级
教研室主任
一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题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分,共10分)
11.数据的完整性主要防范的对象是非法用户。( )
12.概念结构设计的工具是E—R模型。( )
13.写程序不属于数据库的模式设计阶段。( )
14.设计好的数据库管理系统在投入使用后出现问题由使用方负责。( )
15.规则必须使用一次就必须定义一次。( )
16.缺省情况下,所创建的索引是非聚集索引 ( )
17.自定义函数在对任何表的查询中都可以使用。( )
18.触发器是可在程序中被调用执行。( )
19.游标中可发插入数据记录。 ( )
20.sa能否创建和删除数据库角色 ( )
三、填空题(每空1分,共20分)
21. 数据库系统具有数据的___________、_________和_________三级模式结构。
22. SQL Server 2005局部变量名字必须以_________开头,而全局变量名字必须以_________开头。
23. 语句 select ascii('C'), char(68), len(' 你 是BigTiger ') 的执行结果是: _________、_________和_________。
24. 语句 select upper('beautiful') , ltrim (' 我心中的太阳') 的执行结果是: ____________和___________。
25. 关系运算主要有________、________、________。
26. 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。
27. 索引的类型主要有_ _和_ __。
28. 在SQL Server 2000中,数据库对象包括数据表、______、______、触发器、规则、默认和用户自定义的数据类型等。
四、简述题(每小题5分,共20分)
29.简述数据库设计过程中需求分析、概念结构设计、逻辑结构设计各个阶段所要完成的任务。
30.存储过程与触发器有什么不同?
31.什么是游标?
32.什么是事务?
Ⅱ操作题部分
(注意:所有操作画面都应保存在以自己姓名命名的WORD文档中,代码的保存请按题目的编号来命名,代码无需记录在试卷上。最后所有的代码和操作画面文件应以一个压缩文件包的形式递交,压缩包以自己的2位学号+姓名的形式命名,如“01王明”。考试期间,一定要注意文件的保存。)
五、程序设计题(共40分)
现有关系数据库如下:
数据库名:学生成绩数据库
学生表(学号 char(6),姓名,性别,民族,身份证号)
课程表(课号 char(6),名称)
成绩表(ID,学号,课号,分数)
用SQL语言实现下列功能的sql语句代码:
33. 创建数据库[学生成绩数据库]代码;
34. 创建[课程表]代码;
课程表(课号 char(6),名称)
要求使用:主键(课号)、非空(名称)
35. 创建[学生表]代码;
学生表(学号 char(6),姓名,性别,民族,身份证号)
要求使用:主键(学号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别)
36. 创建[成绩表]代码
成绩表(ID,学号,课号,分数)
要求使用:主键(课号)、外键(成绩表.学号,成绩表.课号)、检查(分数),自动编号(ID)
37. 将下列课程信息添加到课程表的代码
课号 课程名称
100001 大学语文
100002 大学英语
100003 西班牙语
修改 课号为100002的课程名称:实用英语
删除 课号为100003的课程信息
38. 写出创建:成绩表视图(学号,姓名,课号,课程名称,分数)的代码;
39. 写出创建:某门课程成绩 内嵌表值函数以及检索的代码;
检索:所有修 实用英语 这门学生的成绩;
40. 写出创建:某门课程高低均分 计算某门课程成绩最高分、最低分、平均分 存储过程以及执行的代码;
执行:所有修 实用英语 这门学生的最高分、最低分、平均分;
41. 检索姓李的女同学的情况:姓名、性别、民族。
42. 检索有一门或一门以上课程成绩大于等于90分的所有学生的信息,包括学号、姓名。
43. 设置一SQL身份验证的账户:登录名:U领导,密码:888,数据库用户名:U读者,权限:可查询查询本数据库中所有表、视图、内嵌表值函数的数据。请写出账户、权限设置的T_SQL脚本。
一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题1分,总计20分)
1
2
3
4
5
6
7
8
9
10
C
A
D
D
B
C
A
D
B
D
二、判断题:(对的写N,错的写Y,填在题末的括号中)(每小题1分,共10分)
1
2
3
4
5
6
7
8
9
10
N
Y
Y
N
N
Y
Y
N
N
Y
三、填空题(每空1分,共20分)
1.数据定义语言(DDL)、数据操作语言(DML)
2.混合
3.35
4.视图
5.实体完整性
6.聚集索引
7.存储过程
8.insert、update
9.原子、一致、独立、持久
10.访问、运行
11.作业、警报
12.事务、合并
四、简述题(每题5分,共20分)
1.①需求分析阶段的主要任务是通过调查,了解原系统的工作概况,明确用户的各种需求,收集支持系统目标的基础数据及其处理方法,
②概念结构设计的主要任务是对需求分析的结果进行综合、归纳,从而形成一个独立于具体数据库管理系统的概念数据模型。
③逻辑结构设计阶段的主要任务是将概念结构设计的结果转换为某个具体的数据库管理系统所支持的结构数据模型,并对其进行优化。
2.答:触发器是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器主要通过事件进行触发而被执行,触发器不能直接调用执行,也不能被传送和接受参数,而存储过程可以通过存储过程名被直接调用。触发器与表有关,存储过程与表无关。
3.答: 游标是允许用户能够从select语句查询的结果集中,逐条逐行地访问记录,可以按照自己的意愿逐行地显示、修改或删除这些记录的数据访问处理机制。
4.答:事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,如果这些操作在执行过程中任何一条操作不能正常完成的话,就取消单元中的所有操作,要么单元中的所有操作都正常完成。
五、设计题(每小题5分,共40分)
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
四、简述题(每小题5分,共10分)
1.什么是数据库备份和恢复?为什么要备份和恢复数据库?
数据库备份是指将当前的数据库系统、数据文件或日志文件复制到一个专门的备份服务器、活动磁盘或者其他能长期存储数据的介质上,作为副本。数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。一旦数据库因意外而遭损坏,这些备份文件可用来恢复数据库。
恢复是与备份相对应的数据库管理工作,数据库备份后,一旦数据库发生故障,就可以将数据库备份加载到系统,使数据库恢复到备份时的状态。系统进行数据库恢复的过程中,自动执行安全性检查,然后根据数据库备份自动创建数据库结构,并且恢复数据库中的数据。
2.关系规范化的基本思想是什么?
所谓关系的规范化,是指一个低一级范式的关系模式,通过投影运算,转化为更高级别范式的关系模式的集合的过程。我们把满足不同程度要求的关系称为不同的范式。
关系规范化的基本思想:逐步消除数据依赖中不合适的部分,使关系模式达到一定程度的分离,即“一事一地”的模式设计原则,使概念单一化,即让一个关系描述一个概念、一个实体或者实体间的一种关系。
五、程序设计题(共40分)
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 = '计算机系')
题号
一
二
三
四
五
六
七
八
九
十
总分
核分教师
分值
10
10
30
10
40
100
得分
评卷教师
F
考试科目
SQL Server数据库技术
考试类型
高职期末考试 『闭卷』
学年学期
适用专业
年 级
教研室主任
一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题1分,总计10分)
1.SQL Server系统中的所有服务器级系统信息存储于哪个数据库( )。
A. master B. model
C. tempdb D. msdb
2.下列标识符可以作为局部变量使用( )。
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分,共10分)
11. 因为通过视图可以插入.修改或删除数据,因此视图也是一个实在表,SQL SERVER将它保存在syscommens系统表中。( )
12. guest用户必须关联一个登录账号才可以在数据库中创建。数据库中的非guest用户账号都必须关联一个登录账号。( )
13. 可以在企业管理器中修改数据库的名称。( )
14. 恢复数据,可以在查询分析器中使用这样的命令:BACKUP DATABASE database_name FROM backup。( )
15. DELETE语句只是删除表中的数据,表本身依然存在数据库中。( )
16. 每个存储过程向调用方返回一个整数返回代码。如果存储过程没有显式设置返回代码的值,则返回代码为 0,表示成功。( )
17. 在数据库中建立的索引越多越好。( )
18. 在SQL SERVER中,触发器的执行是在数据的插入.更新或删除之前执行的。( )
19. 并发性就是两个或两个以上的用户同时对数据执行的操作。( )
20.通配符“_”表示某单个字符。 ( )
三、填空题(每空1分,共30分)
21. 目前最常用的数据库有层次数据库、_________数据库和_________数据库,其中_________数据库是目前应用最广泛的一种数据库。
22. 关系数据模型的逻辑结构是__________,关系中的列称为________,行称为________。
23. 关系数据库模型的数据操作主要包括插入、________、________和________数据。
24. SQL、DCL和DML缩写词的意义是___________语言、___________语言和___________语言。
25.实体之间的联系类型有三种,分别为________、________和________。
26.数据库系统的三级模式结构和两级数据映像确保了数据的________独立性和________独立性。
27.SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和________________备份。
28.SQL Server代理主要由______、______和_____来组成。
29.SQL Server复制把服务器分为______服务器、______服务器和_____服务器三种。
30.在SQL中,create view、alter view和drop view命令分别为________、________和________视图的命令。
四、简述题(每小题5分,共10分)
31.简述规范设计方法中,数据库应用系统开发的全过程。
32.创建数据库有那几种方法?
Ⅱ操作题部分
(注意:所有操作画面都应保存在以自己姓名命名的WORD文档中,代码的保存请按题目的编号来命名,代码无需记录在试卷上。最后所有的代码和操作画面文件应以一个压缩文件包的形式递交,压缩包以自己的2位学号+姓名的形式命名,如“01王明”。考试期间,一定要注意文件的保存。)
五、程序设计题(每小题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语言实现下列功能:
33.建立学生表[Student],其中学号属性不能为空,并且其值是唯一的。(5分)
34.查考试成绩有不及格的学生的学号。(5分)
35. 将学号为05001学生的年龄改为22岁。(5分)
36.计算1号课程的学生平均成绩。(5分)
37. 创建存储过程[getDetailByName],通过输入参数学生姓名(如"张三"),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。(5分)
38. 查计算机系姓赵的男同学的姓名(Sname)、性别(Ssex)、年龄(Sage)。(5分)
39.创建视图[学生成绩表视图],视图中包括学号(Sno)、姓名(Sname)、课程号(Cno)、课程名(Cname)、成绩(Grade)。(5分)
40.将一个新学生记录(学号:05020;姓名:丁莉;性别:女;年龄:17岁;所在系:计算机;)插入Student表中。(5分)
一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题1分,总计10分)
1
2
3
4
5
6
7
8
9
10
D
C
A
C
A
A
B
D
A
C
二、判断题:(对的写N,错的写Y,填在题末的括号中)(每小题1分,共10分)
11
12
13
14
15
16
17
18
19
20
N
N
N
N
N
N
N
Y
Y
N
三、填空题(每空1分,共30分)
1. 选择、投影、连接
2. @、@@
3. 68
4. BEAUTIFAL、我心中的太阳
5. select、insert、update、delete
6. 水平、垂直
7. 作业、操作员
8. 实体、域、参照、用户自定义
四、简述题(每小题5分,共10分)
1. 将每个学生的学号和课程号定义为复合主键这样才能保证每个学生的每门课程惟一。
2. 要点:
(1)域完整性 :使用DEFAULT (默认值)、DEFAULT(默认技术)、CHECK(检查)、RULE (规则技术)的方法指定某列可接受值的范围或模式
(2)实体完整性:使用 PRIMARY KEY(主键)、UNIQUE(惟一键)、IDENTITY(标识列)来确保行的惟一性
(3)参照完整性:使用 FOREIGN KEY(外键) 保证列与参照列的一致性
五、程序设计题(共40分)
1.
create database [教师数据库]
use [教师数据库]
go
create table 教师表
([编号] char(6) primary key,
[姓名] nchar(4) not null,
[性别] nchar(1) check([性别] in ('男', '女')),
[民族] nchar(8) default '汉族' not null,
[职称] nchar(12),
[身份证号] char(18) unique
)
create table 课程表
([课号] char(6) primary key,
[名称] char(40) not null
)
create table 任课表
(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, '教师表.职称'
第18页(共6页)
展开阅读全文