SQL Server 数据库试题(1—6)附答案 下载本文

数据库试题(一)

一、单选 (每空2分,共10分)

1. 当采用Windows认证方式登录数据库服务器时,SQL Server客户端软件会向操作系统请求一个( )。

A. 信任连接 B. 邮件集成 C. 并发控制 D. 数据转换服务

2. SQL Server的物理存储主要包括3类文件( )。 A. 主数据文件、次数据文件、事务日志文件 B. 主数据文件、次数据文件、文本文件 C. 表文件、索引文件、存储过程 D. 表文件、索引文件、图表文件

3. Transact-SQL对标准SQL的扩展主要表现为( )。 A. 加入了程序控制结构和变量 B. 加入了建库和建表语句

C. 提供了分组(Group By)查询功能 D. 提供了Min、Max等统计函数

4. 以下哪种情况应尽量创建索引( )。 A. 在Where子句中出现频率较高的列 B. 具有很多NULL值的列 C. 记录较少的基本表

D. 需要更新频繁的基本表

5. SQL Server触发器主要针对下列语句创建( )。 A. SELECT、INSERT、DELETE B. INSERT、UPDATE、DELETE C. SELECT、UPDATE、INSERT D. INSERT、UPDATE、CREATE

二、填空 (每空1分,共20分)

1.使用数据库设计程序时,只需要告诉数据库管理系统________,不需要告诉它________。

2.若一个联系涉及到两个实体则称为________联系,若只涉及到一个实体则称为________联系。

3.若实体A和B是1对多的联系,实体B和C是1对1的联系,则实体A和C是________对________的联系。

4.在一个关系中不允许出现重复的________,也 不允许出现具有相同名字的________。

5.数据库系统中的四类用户分别为数据库管理员、数据库设计员、____________和____________。

6.在存取数据库的数据的过程中,使用了两个数据缓冲区,分别为________缓冲区和________缓冲区。

7.关系中的码可分为超码、________、________、备用码和外码五种。

1

8.用户定义的________是对关系中一些属性的取值给定相应的约束条件,禁止非法数据进入________。

9.设一个关系模式为R(A,B,C),对应的关系内容为R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}},则R??R的运算结果中包含有________个元组,每个元组包含有________个分量。

10.在一个关系R中,若属性集X函数决定属性集Y,同时Y函数决定X,则记作为________,它们之间互为________。

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

1.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,C→D,(A,C)→E},则该关系的候选码为________,该候选码含有______属性。

2.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,A→C,C→D,C→E},该关系满足________范式,若要规范化为高一级的范式,则将得到________个关系。

3.数据库系统的外模式在SQL中称为________,它由________产生出来。

4.在SQL中,列级完整性约束分为____种情况,表级完整性约束分为____种情况。

5.向基本表中插入数据有两种命令格式,一种称为________插入格式,另一种称为________插入格式。

6.在SQL中,通过使用视图,能够使在关系规范化时被分解的关系________连接起来,能够增强数据库的________性。

7. 在SQL新版的查询语句中,select选项实现________运算,from选项实现________运算,where选项实现________运算。

8.需求分析阶段的主要目标是画出数据流图、建立数据字典和编写__________。

9.在列举的购物活动中,商品实体同销售实体之间是______对______的联系。

10.在进行系统调试时,要有意地使用各种不同的________和进行各种不同的_________,去测试系统中的所有方面。

四、填空 (每空1分,共20分)

1. SQL Server的数据库分为____________和 ____ 两种类型。

2. Microsoft SQL Server2000是运行在__________操作系统平台上的、逻辑模型为________型数据库管理系统。

3. 在Transact-SQL语句中需要把________型和________型数据常量用单引号括起来。

4. 索引会影响对基本表的________、________和________等操作的速度。

5. 触发器是一种特殊的 ,基于表而创建,主要用来保证数据的完整性。

6. 基本表中的记录数越______,每条记录占用的字节数越______时,使用索引就越有利。

2

7. 在SQL Server中,通常不需要用户建立索引,而是通过使用________约束和________约束,由系统自动建立索引。

8. 在SQL Server中,CASE结构是一个________,只能作为一个________使用在另一个语句中。

9. 使用游标对基本表进行修改和删除操作的语句中,WHERE选项的格式为“WHERE __________ OF ____________。

10. 要访问SQL Server数据库服务器,用户必须提供正确的__________和__________。

五、根据主教材第四章所给的商品库和教学库,按照下列前三小题的每条SQL查询语句写出相应的功能,或者按照下列后两小题的每种功能写出相应的SQL查询语句。(每小题3分,共15分)

在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为: 商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int) 商品表2(商品代号 char(8),产地 char(6),品牌 char(6))

在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime, 专业 char(10),年级 int)

课程(课程号 char(4),课程名 char(10),课程学分 int) 选课(学生号 char(7),课程号 char(4),成绩 int)

1.select distinct 品牌 from 商品表2

2.select x.学生号,y.学生号,y.课程号 from 选课 x,选课 y

where x.学生号=@s1 and y.学生号=@s2 and x.课程号=y.课程号

3.select 专业,count(*) as 专业人数 from 学生

group by 专业

order by 专业人数 desc

4.从商品库中查询出每类(即分类名相同)商品的最高单价。

5.从商品库中查询出同一类商品多于一种的所有分类名。

3

六、根据下面所给的AAA数据库,按照第1小题写出执行结果,按照第2、3、4小题写出其实现功能,按照第5小题写出对应的Transact-SQL语句。(每小题3分,共15分) 假设使用名称为AAA的数据库,它包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。

1. select '学生号','课程号',isnull(cast(null as char(6)),'无成绩')

2. declare @a char(8) set @a='计算机'

select 计算机专业人数=count(*) from students

where left(专业,3)=@a

3.create procedure xxk4 (

@a char(8),@b varchar(10),@c numeric(5,2) ) as begin

update score set 成绩=@c

where 学号=@a and 课程名=@b end

4.declare @a char(8),@b varchar(10),@c numeric(5,2) declare @s char(8),@r varchar(10) set @s='20030001' set @r='数学' set @c=84

declare xxx cursor

for select 学号,课程名 from score open xxx

fetch xxx into @a,@b while @@fetch_status=0 begin

if(@a=@s and @b=@r) update score set 成绩=@c

where current of xxx fetch from xxx into @a,@b

4

end

close xxx

deallocate xxx

5. 显示出Students表中所有学生记录的学号列的前四个字符。

一、单选 (每空2分,共10分) 1. A 2. A 3. A 4. A 5. B

二、填空 (每空1分,共20分) 1. 做什么、怎么做 2. 二元、一元 3. 1、多

4. 元组、属性

5. 应用程序员、终端用户 6. 系统、用户

7. 候选码、主码(次序无先后) 8. 完整性、数据库 9. 4、3

10. X←→Y、决定因素

三、填空 (每空1分,共20分) 1. (A,C)、2 2. 第二、2

3. 视图、基本表 4. 6、4

5. 单行(单值)、多行(多值)(次序无先后) 6. 连接、安全

7. 投影、连接、选择 8. 需求说明书 9. 1、多

10. 数据、操作

四、填空 (每空1分,共20分)

1. 系统数据库、用户数据库(次序无先后) 2. windows、关系

3. 字符、日期时间(次序无先后) 4. 插入、删除、修改(次序无先后) 5. 存储过程 6. 多、多

7. 主码、唯一值 8. 函数、表达式

9. CURRENT、<游标名>

10. 登录帐号、口令(密码)(次序无先后)

五、根据主教材第四章所给的商品库和教学库,按照下列前三小题的每条SQL查询语句写出相应的功能,或者按照下列后两小题的每种功能写出相应的SQL查询语句。(每小题3

5

分,共15分)

1. 从商品库中查询出所有商品的不同品牌。

2. 从教学库中查询出学生号为@s1的学生和学生号为@s2的学生所选修的共同课程的课程号。

3. 从教学库中查询出每个专业的学生人数,并按人数多少降序排列。 4. select 分类名,max(单价) as 最高单价 from 商品表1 group by 分类名

5. select distinct 分类名 from 商品表1

group by 分类名 having count(*)>1

六、根据下面所给的AAA数据库,按照第1小题写出执行结果,按照第2、3、4小题写出其实现功能,按照第5小题写出对应的Transact-SQL语句。(每小题3分,共15分) 1. 学生号 课程号 无成绩

2. 从students表中统计出专业名开头为@a的值(即“计算机”)的所有学生人数。 3. 修改score表中学号为@a的值、课程名为@b的值的学生的成绩为@c的值。 4. 修改score表中学号为@a的值、课程名为@b的值的学生的成绩为@c的值。 5. select left(学号,4) fron Students

数据库试题(二)

一、选择题(本大题共10个小题,每小题2分,共20分)

1、( A )是对客观事物及其活动的抽象符号表示,是存储在某一种媒体上可以鉴别的符号资料,其形式可以是数字、文字、图像、图形和声音等。

A、数据 B、符号 C、字符 D、信息

2、T-SQL语言中每一个Select子句必须有一个( D )子句,该子句包含提供数据的表或视图的名称。

A、like B、where C、order by D、from

3、在查询语句的Select子句中使用( B )符号,则从From子句中指定的表或视图中查询并返回所有列。

A、-- B、* C、@ D、#

4、T-SQL语言的字符串常量都要包含在( A )内。 A、单引号 B、双引号 C、书名号 D、中括号

5、以下(B)中不能直接使用聚合函数。

A、Select子句 B、Where子句 C、Having子句 D、以上三者

6

6、( A )是指实体所具有的某种特性,是用来描述一个实体,例如,产品实体有产品ID、产品名等。

A、属性 B、实体 C、联系 D、字段 7、( A )是目前应用最广泛,也是最重要的一种数据模型,它采用关系模型作为数据的组织形式。

A、关系模型 B、层次模型 C、网状模型 D、面向对象模型

8、表中的某个属性或几个属性组合称为( A ),它可以唯一确定一个元祖,如产品关系中的产品ID。

A、主键 B、外键 C、约束 D、关系 9、( d )要求每一个数据项都不能拆分成两个或两个以上的数据项,即不允许表中套子表的情况。

A、第四范式 B、第三范式 C、第二范式 D、第一范式 10、( D )用于对表中某列或某些列数据的有效范围进行限制,系统在输入或修改数据时对数据的有效性进行自动检查,以判断列中的数据值是否有效。

A、default约束 B、Unique约束 C、Primary Key D、Check约束

得分 二、填空题(本大题共15个空,每小题2分,共30分)

1、在SQL Server2005中有五种约束类型,分别是主键约束、外键约束、 default约束unique约束、cheak约束。

2、T-SQL语言中主要包含的常用聚合函数有AVG()、SUM()、MAX()、MIN()、和COUNT()。

3、为数据库表创建主键时,一个表只能有一个 主键 约束,通常选择代码列,例如职工号、产品号。

4、数据库的设计一般分为6步:___需求分析___、概念结构设计、__逻辑结构设计__、__物理设计____、数据库实施、运行及维护。 5、____外键____约束用于建立主表和从表之间的数据联系,通常可以将表中主键值的一列或多列添加到另一个表中创建两个表之间的连接。

6、范式按照规范化的级别分为5种:第一范式、_第二范式__、_第三范式_____、__第四范式______、第五范式。

得分 三、编程题(本大题共15个空,每个空2分,共30分)

根据下列题意要求,把每题中的SQL程序代码补充完整。 1、创建一个公司管理数据库companyinfo。

____Create_______ database __companyinfo_________

7

go

2、为公司管理数据库companyinfo创建一张数据库“雇员表Employee(雇员ID,姓名,性别,出生日期,雇佣日期,特长,薪水)”。 use ______companyinfo_____ Go

____Create_______ table ____employee_______ (雇员ID int NOT NULL,

_____姓名______ char(8) NOT NULL, ______性别_____ char(2) NOT NULL, ______雇用日期_____ datetime,

____出生日期___ datetime NOT NULL, ___特长____ char(20), 薪水 money)

3、在“产品表product”(从表)中为“类别ID”创建一个带有级联删除功能的外键约束“FK_product_category”,实现与“类别表category”(主表)之间的联系。 use company go

_____alter______ table _FK_product_category________

______add_____ constraint ____cp_pro_cat_______ foreign key(类别ID_)

references category(类别ID) on delete cascade

数据库试题(三)

一、 单项选择题(每题2分,共15题)

1. SQL Server 2000是一个( )的数据库系统。

(A)网状型 (B)层次型 (C)关系型 (D)以上都不是 2. DTS 是一个简称,它的全称是( )。

A. 数据运输系统 B. 数据传输服务 C. 数据库传输系统 D. 数据库运输服务 3. SQL Server 2000 采用的身份验证模式有( )。 (A)仅Windows身份验证模式 (B)仅SQL Server身份验证模式 (C)仅混合模式

(D)Windows身份验证模式和混合模式

4. SQL 语言按照用途可以分为三类,下面选项中哪一种不是的:( ) (A)DML (B)DCL (C)DQL (D)DDL

5. 在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是( ) (A) * (B)% (C)- (D)?

6. SQL Server提供的单行注释语句是使用( )开始的一行内容。 (A) “/*” (B) “--” (C) “{” (D) “/” 7. 以下那种类型能作为变量的数据类型( )。 (A)text (B)ntext (C)table (D)image 8. 下面不属于数据定义功能的SQL语句是:( )

A.CREATE TABLE B.CREATE CURSOR C.UPDATE D.ALTER TABLE 9. 如果希望完全安装SQL Server,则应选择( )。

8

A. 典型安装 B. 最小安装 C. 自定义安装 D. 仅连接 10. 在SQL SERVER中局部变量前面的字符为:( ) (A)* (B)# (C)@@ (D) @

11. 假如有两个表的连接是这样的: table_1 INNER JOIN table_2 其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?( ) (A) 包括table_1中的所有行,不包括table_2的不匹配行 (B) 包括table_2中的所有行,不包括table_1的不匹配行 (C) 包括和两个表的所有行

(D) 只包括table_1和table_2满足条件的行 12. 对视图的描述错误的是:( ) (A) 是一张虚拟的表

(B) 在存储视图时存储的是视图的定义 (C) 在存储视图时存储的是视图中的数据 (D) 可以像查询表一样来查询视图

13. 在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是( )。 (A)ALTER (B)UPDATE (C)UPDAET (D)ALLTER

14. SQL Server 2000提供了一整套管理工具和实用程序,其中负责启动、暂停和停止SQL Server的4种服务的是( )。

(A)企业管理器 (B)导入和导出数据 (C)事件探察器 (D)服务管理器

15. 要查询book表中所有书名中以“计算机”开头的书籍的价格,可用( )语句。 (A) SELECT price FROM book WHERE book_name = ‘计算机*’ (B) SELECT price FROM book WHERE book_name LIKE ‘计算机*’ (C) SELECT price FROM book WHERE book_name = ‘计算机%’ (D) SELECT price FROM book WHERE book_name LIKE ‘计算机%’

二、 填空题(每空2分,共15空)

1.数据库系统的特点分别是数据的结构化、 、数据独立性和 。 2.在SQL Server 2000中,一个批处理语句是以 结束的。

3. SQL Server 2000中的数据以页为基本存储单位,而8个相邻的页称为扩展盘区,那么扩展盘区的大小应该为 。

4. 在SQL Server 2000中,索引的顺序和数据表的物理顺序不相同的索引是_____________。 5. 如果要计算表中数据的平均值,可以使用的聚合函数是________ ____。 6. 游标的概念包括两个部分,它们是 和 。

7. 一个事务的操作必须是具备以下四个属性:原子性、 、_____________和持久性。 8. 在SQL Server 2000中,我们创建数据库的语句是 ,而修改数据库的语句是 。 9. 在我们说到数据完整性时,使用 是优先于使用触发器、规则 和 。

三、 简答(10分) 1. 声明一个长度为16的字符型变量“cname”, 并赋初值为”数据库系统概述”。请按前面的要求写出相应语句。

2. 在字符串中,我们应该怎样来产生一个回车并生成一个新行?

9

四、 程序阅读题(10分)

下面程序段的功能是:在 数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向author_id、author_name、address和telephone字段插入数据。阅读并回答以下问题: USE bookdb GO

IF EXISTS(SELECT ① FROM Sysobjects

WHERE name=’my_proc’ and type=’ ② ’) DROP PROC my_proc GO

CREATE PROC my_proc

@a int, @b char(8),@c char(50) ③

INSERT INTO clients(client_id,client_name,address) VALUES(@a,@b,@c) GO 问题:(1)填写该程序段中空白处的内容:① ② ③ (2)任写一条调用该存储过程的语句: 。

五、 编程题(20分,共4题) student表(学生表) 学号 姓名 性别 年龄 系别 1 吴好 男 18 计算机系 2 崔平 女 21 经管系 3 钱筱 女 19 电子系

course表(课程表) sc表(选课表) 课程号 课程名 学分 1 SQL Server 4 2 数据结构 3 3 专业英语 2 学号 课程号 成绩 1 1 88 2 1 90 2 2 70 3 3 79

10

1、 把course表中课程号为3的课程的学分修改为3。(3分)

2、 在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。(4分)

3、 在以上三个表中查询选的课程的“学分”为3,并且成绩大于80的学生的学号、姓名和性别。(6分) 4、为student表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。

(注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。)(7分)

参考答案

一、 单项选择题(每题2分,共15题)

1. C 2.B 3.D 4.C 5.B 6.B 7.C 8.C 9.A 10.D 11.D 12.D 13.C 14.D 15.D 二、 填空题(每空2分,共15空) 1.数据共享 可控冗余 2.GO 3. 64KB 4.非聚集索引 5.AVG函数 6.游标结果集 游标位置 7.一致性 隔离性 8.CREATE DATABASE ALTER DATABASE 9.约束 默认值 三、 简答(10分)

1.DECLARE cname char(16)

SET cname=’数据库系统概述’ 或者是

DECLARE cname char(16)

SELECT cname=’数据库系统概述’ 2.CHAR(13)+CHAR(10) 四、 程序阅读题(5分) 1. name P as

2. EXEC my_proc 7,‘李好’,‘考试书店’或者 EXEC my_proc @a=7,@b=‘李好’,@c=‘考试书店’

五、 编程题(25分,共4题) 1、 (4分)

update course (1分)

11

set 学分=4 (2分) where课程号=2 (1分)

2、select * from student where 年龄>18 order by 学号 desc (5分) 1分 1分 1分 2分 3、(6分) 方法1:

select distinct student.学号,姓名,性别 (1分) from student, course, sc (1分)

where (student.学号=sc.学号) and (course.课程号=sc.课程号) and (course.学分=4) and (sc.成绩>80) (1+1+1+1分) 方法2:

select distinct student.学号,姓名,性别 (1分)

from student Inner Join (sc Inner Join course On course.课程号=sc.课程号)

On student.学号=sc.学号 (2分+2分)

where (course.学分=4) and (sc.成绩>80) (1分+1分) 4、(10分)

If exists(Select name From sysobjects

Where name=’my_trig’and type=’tr’) (整个If语句 1分) Drop trigger my_trig (0.5分) Go (0.5分)

Create trigger my_trig (1分) On student (0.5分) For Delete (1分) As (0.5分)

Delete From sc (2分)

Where 学号 in (Select 学号 From Deleted) (1分+2分) Go

数据库试题(四)

一、填空题(共9题,每空1分,共15分) 1.将数据库从SQL Server实例中删除,即在逻辑上将数据文件和日志文件与服务器相脱离,但文件并不从磁盘上删除,此操作称为_________,可通过_______将其重新加载到SQL Server实例中。

2.SQL Server中用于服务器的所有初始化信息和系统级信息的的系统数据库是_______________。

3.打开数据库student,使之成为当前数据库,可以使用语句______________。

4.使用T-SQL语句创建存储过程时,若要求对存储过程的定义文本进行加密,应使用_________子句。

5.若要删除sutdent表的全部数据,数据删除后不可撤销,应使用语句____________,若想删除student数据表,应使用语句________________。

6.若要对数据库中的对象进行改名,就使用的系统存储过程是_____________。 7.Sql Server的数据库文件分为数据文件和__________,其中数据文件又分为_________和__________。

8.在Sql Server中,按触发的时机,触发器可分为__________和________。 9.在Sql Server的事务处理中,开启一个事务可用Begin Transaction,提交事

12

和撤销事务应使用____________和___________。 二、简答题(共3题,每题7分,共21分)

1.在数据库端编程,主要有自定义函数、存储过程和触发器三种形式,请比较一下这三种方式的异同。

2.SqlServer有哪些系统数据库,各自的作用是什么?

3.数据库中的常用完整性有几种?在Sql Server主要通过什么方式实现? 三、应用题(共6题,本题共54分。)

1.创建名为“Love”的数据库,其中主数据文件为Lovedat.mdf,初始大小为8M,增长大小为1M,日志文件为Lovedat.ldf,初始大小是5M,最大存储空间是30M,增长是5M。请写出相应的SQL语句。(本题8分)

2.使用sql语句创建表authors,结构如下表所示(本题8分) 列名数据类型 大小是否为空 默认值 说明 authorID int 4 N 编号(主键),自动增长 authorName nvarchar 50 N 姓名 Phone nvarchar13 Y 电话 address nvarchar255 Y 地址

3.使用SQL语句对2中创建的authors表进行如下修改:(每小题5分,共15分) (1)添加Sex 列 char(2),city列 varchar(20)。

(2)删除city列。

(3) 修改作者信息表authors中的address列将该列的属性的长度更改为500。

4.系部表的创建语句如下,请完成以下操作(每小题5分,共15分)

CREATE TABLE 系部 (系部代码 char(2) CONSTRAINT pk_xbdm PRIMARY KEY, 系部名称 varchar(30) NOT NULL,系主任 char(8)) (1)将系部表中计算机系的系主任改为‘张中裕’

(2)将系部表中的系部名称列中的‘系’全部更改为‘科学系’(使用replace函数,用法:replace(串1,串2,串3),其功能是将串1中的串2 替换为串3 )

(3)在系部表中删除系主任姓‘张’的系部数据

5.有二个数据表XS(xh, xm)和XS_KC(xh, kch, cj),用两种方法,写出如下查询:“查找数据库中所有学生的学号(xh)、姓名(xm)以及其所选修的课程号(kch)和成绩(cj)”。(本题8分)

四、编程题(共2题,每题5分,共10分) 1. 在数据表上机记录中创建一个名为insert_sjkh的insert触发器其作用是:当用户在“上

13

机记录”表中插入记录时,若“上机卡”表中没有该上机号,则提示用户不能插入,否则,提示记录插入成功。(附:上机记录表结构:(上机号 char(13),上机日期 datetime,开始时间 datetime,结束时间 datetime,上机状态 bit)。上机卡表结构:(上机号 char(13),姓名??)

2. 在student数据库中的学生、课程注册、课程表中创建一个带参的存储过程cjcx。其功能是:当任意输入一个学生的姓名时,返回该学生的学号、选修的课程名和课程成绩。然后使用存储过程,查询学生“陈斌”的学号、选修的课程名和课程成绩。

数据库试题 4 答案

一、1.数据库分离,数据库附加 2.master 3.use student 4. with encryption; 5.truncate table student,drop table student 6.sp_rename 7. 日志文件、主要数据文件、次要数据文件 8.后触发器、替代触发器 9.Commit transaction,rollback transaction 二、1.答:相同点:存储过程、触发器和自定义函数都能完成特定的功能,并且都存储在服务器端的数据字典中。区别:存储过程和自定义函数都可以定义参数,触发器不可以;从调用方式上,存储过程和自定义函数都需要由应用程序或其他功能体进行调用,而触发器是当相应事件发生时自动执行,不须干预;自定义函数需要定义返回类型,函数体中至少要有一条用于返回返回值的语句,而存储过程和触发器不需要。 2.答:主要的系统数据库有master、model、tempdb和msdb。其中Master数据库保存了Sql Server2005的初始化信息和所有系统级信息。Master数据库是Sql Server 2005中最重要的系统数据库,对其更新和删除操作而导致Master数据库的不可用都将使得整个Sql Server2005系统无法启动和运行。Model数据库是用于保存所有用户数据库和Tempdb数据库的模版。每当用户创建数据库的时候,Sql Server 2005将用Model数据库提供的信息初始化被创建的数据库。Msdb数据库是Sql Server2005代理服务工作时使用的数据库,用于为Sql Server代理服务在警报和作业等操作时提供存储空间。Tempdb数据库是一个临时的系统数据库,用于为所有临时表、临时存储过程以及其他的临时操作提供存储空间。

3.答:视图是一个虚拟表,并不存储任何物理数据。视图与真正的表很类似,也是由一组命名的列和数据行组成,其内容由查询所定义。但是视图并不是以一组数据形式存储在数据库中,数据库中只存储视图的定义,而不存在视图中的数据,视图中的数据仍存储在基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。视图和表相比有独特的优势主要有以下几个方面:(1)保证数据的安全。(2)简化查询操作。(3)保证数据的逻辑独立性。 三、1. create database love on (name=lovedat,filename='d:\\database\\lovedat.mdf',size=8,Maxsize=unlimited,filegrowth=1) log on (name=lovedat_log,filename='d:\\database\\lovedat.ldf',size=5,Maxsize=30,filegrowth=5) 2. create table authors (authorid int identity(1,1) primary key not null, authorname nvarchar(50) not null,phone nvarchar(13) null, address nvarchar(255))

3. (1) alter table authors add sex char(2) null,city nvarchar(20) null; (2) alter table authors drop column city

(3) alter table authors alter column address nvarchar(500) not null 4. (1) Update 系部 set 系主任=’ 张中裕’ where 系部名称=’计算机系’ (2) Update 系部 set 系部名称=replace(系部名称,’系’,’科学系’) (3) Delete from 系部 where 系主任 like ‘张%’

14

5. (1) select xs.xh,xm,kch,cj from xs, xs_kc where xs.xh=xs_kc.xh; (2) select xs.xh,xm,kch,cj from xs join xs_kc on xs.xh=xs_kc.xh; 四、1.Create trigger insert_sjkh on dbo.上机记录 for insert As

begin

Declare @asjkh char(13) Declare @acount int

Select @asjkh=上机号from inserted

Select @acount=count(*) from 上机卡where 上机号=@asjkh If @acount=0

Print '上机卡中无此卡号,不能插入' Else

Print '数据插入成功' end

2. Create PROCEDURE [dbo].[cjcx] @axm char(8) AS BEGIN SELECT 学生.学号,课程.课程名,课程注册.成绩 from 学生,课程,课程注册

where 学生.学号=课程注册.学号 and 课程注册.课程号=课程.课程号 and 姓名=@axm END

执行存储过程cjcx,查询“周红瑜”的学号、选修的课程名和课程成绩。 Exec cjcx @axm=’张斌’

数据库试题(五)

1. 关系范式从低到高依此是( D )

A. 4NF BCNF 3NF 2NF 1NF B. BCNF 4NF 3NF 2NF 1NF C. 1NF 2NF 3NF 4NF BCNF D. 1NF 2NF 3NF BCNF 4NF 2. 数据库模型提供了两级映象, 它们的作用是( D ) A. 控制数据的冗余度 B. 实现数据的共享 C. 使数据结构化 D. 实现数据的独立性

3. 下列SQL Server语句中出现语法错误的是( D )。

A. CREATE TABLE Student B. SELECT * FROM Student C. CREATE DATABASE XSGL D. DELETE * FROM Student 4. SQL中的视图机制属于DBS的( B )。 A.完整性措施 B.安全性措施 C.恢复措施 发性措施

D.并

5. 关系代数运算是以( C )为基础的运算。

A. 关系运算 B. 谓词演算 C. 集合运算 D. 代数运算 6. 关系数据库系统中所使用的数据结构是( D ) A. 树 B.图 C. 表格 D. 二维表

7. 设有关系R和S,关系代数表达式R-(R-S)表示的是( A ) A. R∩S B. R-S C. R∪S D. R÷S 8. 在关系模型中,一个关键字( C )

15

A. 可由多个关系任意属性组成 B. 至多由一个属性组成

C. 可由一个或多个能唯一识别关系模式中任何元组的属性组成 D. 以上都不对

9. 要查询XS表中姓“王”且单名的学生情况,可用( A )命令 A. SELECT * FROM XS WHERE 姓名 LIKE ‘王_’ B. SELECT * FROM XS WHERE 姓名 LIKE ‘王%’ C. SELECT * FROM XS WHERE 姓名 = ‘王%’ D. SELECT * FROM XS WHERE 姓名 = ‘王_’ 10. SQL语言中,SELECT语句的中FROM子句指出的是查询的( A )

A. 数据来源 B. 条件 C. 输出数据项 D. 分组依据

11 如果一关系模式是3NF,则该关系模式必定是( A ) A. 2NF B. BCNF C.4NF D.5NF 12 下列说法中不正确的是( C)。

A、任何一个包含两个属性的关系模式一定满足3NF

B、任何一个包含两个属性的关系模式一定满足BCNF C、任何一个包含三个属性的关系模式一定满足3NF D、任何一个关系模式都一定有码

13. 若用如下的SQL语句创建表S:

CREATE TABLE S(S# CHAR(6)PRIMARY KEY, SNAME CHAR(8)NOT NULL,SEX CHAR(2),AGE INTEGER) 并且S表中已经有两行: (‘022345’,‘李明芳’,‘女’,23)和(‘021876’,‘张为’,‘男’,32) 今欲向S表插入新元组: Ⅰ.(‘022345’,‘彭明芳’,‘女’,23) Ⅱ.(‘020746’,‘杨云’,NULL,NULL) Ⅲ. (‘020721’,‘张为’,‘女’,21). 可以被成功插入的元组是( C )

A. 全部 B. Ⅰ和Ⅱ C. Ⅱ和Ⅲ D. Ⅰ和Ⅲ 14. 下面列出的关于“视图(View)”的条目中,哪一条是不正确的( C )。

A. 视图是外模式 B. 视图是虚表 C. 使用视图可以加快查询语句的执行速度 D. 使用视图可以简化查询语句的编写 15. SQL Server 2000或SQL Server 2005中的文件包括: 主数据文件、辅助数据文件和

( B )

A. 索引文件 B. 日志文件 C. 备份文件 D. 程序文件

得分 二、填空题(每空1分,共10分)。

1. 模式/内模式映像为数据提供了数据的_____物理____________独立性。 2. 关系代数中专门的关系运算包括:选择、投影、__连接_______和除法。

3. 关系中主码的取值必须惟一且非空,这条规则是____实体_____________完整性规则。 4. SQL语言提供___数据定义______、数据查询、_数据操纵____ ___、数据控制等功

16

能。

5. 关系规范化理论是设计__关系数据库______的指南和工具。 6. 实现概念模型最常用的表示方法是___E-R图________。

7. 设关系模式R是第一范式,且每个非主属性都不传递依赖于R的候选键,则称R是

__3NF_____ 范式。

8. SELECT语句中进行查询 , 若希望查询的结果不出现重复元组 , 应在SELECT子句中

使用___ Distinct ______保留字。

得分 三、简答题 (每小题10分,共30分)。

1. 简述数据库系统的体系结构特点。

数据库系统的体系结构,包括数据库管理系统的三级模式结构和两级映象。 数据库系统的三级结构是指数据库系统由外模式(子模式)、模式、内模式三级构成。 外模式(又称子模式、用户模式):是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

数据库管理系统在三级模式之间提供了两层映象:外模式 / 模式映象、模式 / 内模式映象两级映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

2.简要说明数据的完整性约束条件的含义。关系有哪三类完整性约束?

数据的完整性约束条件是一组完整性规则。这些规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确、有效和相容。

关系有实体完整性、参照完整性和自定义完整性等三类完整性。

3. 笛卡尔积、等值连接、自然连接三者有什么区别?

笛卡尔积是关系代数中的一个基本操作,而等值连接和自然连接是关系代数中的组合操作。等值连接是在笛卡尔积的基础上选择满足两个关系中给定属性相等的元组的集合。自然连接是在两个关系的相同属性上的等值连接,并且自然连接要在结果中把重复的属性去掉,而等值连接则不必. 等值连接中有笛卡尔积运算;

自然连接是一种等值连接,它是两个关系中所有公共属性进行等值连接的结果。 得分 四、设计题(每小题3分,共30分) Tru现有学生选课关系数据库如表1-表3:

表1 学生信息表:student 列名 数据类型 长度 sno sname

是否允许为空值 否 否 17

字符(文本)型 字符(文本)型 10 10 ssex sage sdept 列名 cno cname credit pcno 字符(文本)型 2 整数(数值)型 字符型 4 表2 课程信息表:course 数据类型 长度 字符(文本)型 3 字符(文本)型 30 整数(数值)型 字符(文本)型 3 表3 学生选课表:sc 数据类型 长度 字符(文本)型 字符(文本)型 整数(数值)型 10 30 否 是 否 是否允许为空值 否 否 是 是 列名 sno cno grade

是否允许为空值 否 否 是 用SQL语言实现下列3-10小题:

3、 查询年龄在20岁以下的学生的姓名及其年龄; select sname, sage from student where sage<20

4、查询年龄在20-30岁直接的学生的姓名, 姓名, 所在系:;

select sname, ssex, sdept from student where sage between 20 and 30

5、查找所有姓’李’的学生的姓名, 学号和性别;

select sname, sno, ssex from student where sname like '李%'

6、查询全体学生的情况,查询结果按所在系号升序排列, 同一系中的学生按年龄降序排列;

select * from student order by sdept ASC, sage DESC

7、查询每个学生的学号, 姓名, 选修的课程名和成绩;

select S.sno, sname, cname, grade from student S, course C, sc SC where S.sno=SC.sno and C.cno=SC.cno

8、计算1号课程的学生的平均成绩, 最高分和最低分;

select avg(grade) as 平均成绩,max(grade) as 最高分, min(grade) as 最低

from scwhere cno='1'

9、查询’信息系’(IS)学生”数据结构”课程的平均成绩;

select avg(grade) from student, course, sc where student.sno=sc.sno and

course.cno=sc.cno and sdept='IS' and cname='数据结构

18

10、创建信息系选修了1号课程的学生的视图IS_S1。 N create view IS_S1 as select student.sno, cno, grade from student, sc where

student.sno=sc.sno and sdept='IS' and cno='1'

数据库试题(六)

一、单项选择题(每题2分,共15题)

1、SQL Server 2000是一个( )的数据库系统。 (A)网状型 (B)层次型 (A)Microsoft Windows 98

(B)Microsoft Windows 2000 Professional (C)Microsoft Windows 2000 Server (D)Microsoft Windows XP

3、SQL Server 2000 采用的身份验证模式有( )。 (A)仅Windows身份验证模式 (B)仅SQL Server身份验证模式 (C)仅混合模式

(D)Windows身份验证模式和混合模式

4、SQL Server 2000提供了一整套管理工具和实用程序,其中负责启动、暂停和停止SQL Server的4种服务的是( )。 (A)企业管理器

(B)导入和导出数据 (C)事件探察器 (D)服务管理器

5、SQL Server 2000中的数据以页为基本存储单位,页的大小为( )。 (A)8KB (B)16KB (C)32KB (D)64KB

6、新安装SQL Server后,默认有六个内置的数据库,其中的两个范例数据库是Pubs和( )。

(A)master (B)NorthWind (C)msdb (D)bookdb

7、在SQL Server 2000中,当数据表被修改时,系统自动执行的数据库对象是( )。 (A)存储过程 (B)触发器 (C)视图 (D)其他数据库对象 8、SQL Server的字符型系统数据类型主要包括( )。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int

9、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是( )。 (A)聚集索引 (B)非聚集索引 (C)主键索引 (D)唯一索引

10、要查询book表中所有书名中包含“计算机”的书籍情况,可用( )语句。 (A) SELECT * FROM book WHERE book_name LIKE ‘计算机*’ (B) SELECT * FROM book WHERE book_name LIKE ‘计算机%’ (C) SELECT * FROM book WHERE book_name = ‘计算机*’ (D) SELECT * FROM book WHERE book_name = ‘计算机%’

11、SELECT语句中与HAVING子句通常同时使用的是( )子句。

19

(C)关系型 (D)以上都不是

2、SQL Server 2000 企业版可以安装在操作系统上。

A.ORDER BY B.WHERE C.GROUP BY D.无需配合 12、要删除mytable表中的myindex索引,可以使用( )语句。 (A) DROP myindex

(B)DROP mytable.myindex

(C) DROP INDEX myindex (D)DROP INDEX mytable.myindex

13、下列选项都是系统提供的存储过程,其中可以进行视图信息的查询是( )。 (A)sp_helptext(B)sp_helpindex (C)sp_bindrule (D)sp_rename 14、SQL Server提供的单行注释语句是使用( )开始的一行内容。 A. “/*” B. “--” C. “{” D. “/” 15、以下运算符中优先级最低的是( )。

(A)+(加) (B)=(等于) (C)like (D)=(赋值)

二、填空题(每空2分,共15空)

1、数据库系统的特点分别是数据的结构化、 、数据独立性和 。 2、在数据库的表中, 是指表中的某一列,该列的值唯一标识一行。 3、SQL Server 2000的文件包括: 数据文件(.mdf或.ndf)和 。 4、在SQL Server 2000中,要访问某个数据库,除了需要有一个登录帐号外,还必须有一个该数据库的 帐号。

5、 ,简称DBMS,它是指帮助用户建立、使用和管理数据库的软件系统。

6、在SQL Server 2000中,Unicode 标准的全称是 。 7

SQL

Server

2000

和 。

8、在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是 ;若要创建一个数据库,应该使用的语句是 。 9、游标的概念包括两个部分,它们是 和 。 10、一个事务的操作必须是具备以下四个属性:原子性、 、 和永久性。

三、程序阅读题(共2题)

1、阅读下面的程序段,然后简述该程序段所完成的功能。(5分) Begin

Waitfor time ’15:43’ Create View my_view

As Select order_date,book_number,book_id From orderform

Where book_number!< 25 End

该程序段的功能是:

2、下面程序段的功能是:在 数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向book表的book_id、book_name、

20

price和publisher字段插入数据。阅读并回答以下问题:(10分) Use bookdb Go

If exists(Select name From ①

Where name=’my_proc’and type=’ ② ’)

Drop Proc my_proc Go

Create Proc my_proc

@a int, @b char(50),@c float,@d publisher ③

Insert Into student(book_id,book_name,price,publisher) Values(@a,@b,@c,@d) Go

问题:(1)填写该程序段中空白处的内容:① ② ③

四、编程题(共4题)

有一个“学生-课程”数据库,数据库中包括三个表: (1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。

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

(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为: SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。

完成下列操作: 1、 请把其中建立 “学生”表Student的语句写下来,表Student是由学号Sno、姓名Sname、

性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。

2、 在student表中查询Sdept是‘计算机’的学生的所有信息,并按Sno降序排列。(5分)

3、 在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别。(7

分)

4、为Course表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。

(注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。)(9分) 参考答案 一、选择题(每题2分,共30分)

CCDDA BBBAB CBACD

21

2)任写一条调用该存储过程的语

句: 。

二、填空题(每空2分,共30分)

1、数据共享、可控冗余度 2、主键 3、日志文件 4、用户 5、数据库管理系统 6、统一字符编码标准 7、备份数据库、备份事务日志 8、ALTER 、CREATE DATABASE 9、游标结果集、游标位置 10、一致性、隔离性 三、程序阅读题(第一题5分,第二题10分,共15分)

1、系统在15:43分为orderform表中订购数量book_number大于25本的订购信息的order_date、book_number和book_id三个字段创建一个名为my_view的视图。(答题意思差不多 即可得满分,其他情况酌情给分)

2、(1)① Sysobjects ② P ③ As (每空2分)

(2)Exec my_proc 7, ’SQL Server 2000教程’,38,‘北京科海集团公司’ 或 Exec my_proc @a=7, @b=’SQL Server 2000教程’,@c=38,@d=’北京科海集团公司’ (4分)

注:该小题不管怎样调用该存储过程,Exec 和 my_proc不可少,也不可多用Proc关键字;若不全对则酌情给分。

四、编程题(共4题,共25分)

1、(共6分)

CREATETABLE Student (1分) (Sno CHAR(5) NOT NULL UNIQUE, (1分) Sname CHAR(20), (1分) Ssex CHAR(1), (1分) Sage INT, (1分) Sdept CHAR(15)); (1分)

2、select * from student where Sdept=’计算机’ order by Sno desc (5分)

1分

1分

1分

2分

3、(共7分) 方法1:

select student.Sno,Sname,Ssex from student, course, sc

(1分) (1分)

where (student.Sno=sc.Sno) and (course.Cno=sc.Cno)

and (course.Ccredit=5) and (sc.Grade>60) (1+1+1+1+1分)

(1分)

(2分+2分) (1分+1分)

方法2:

select student.Sno,Sname,Ssex

On student.Sno=sc.Sno

4、(共9分)

If exists(Select name From sysobjects

Where name=’my_trig’and type=’tr’) (整个If语句 1分)

Drop trigger my_trig Go

Create trigger my_trig

from student Inner Join (sc Inner Join course On course.Cno=sc.Cno)

where (course.Ccredit=5) and (sc.Grade>60)

(0.5分)

(0.5分)

(1分)

22

On Course For Delete As

(0.5分)

(1分) (0.5分) (1分)

(1分+2分)

Delete From sc Go

Where Sno in (Select Sno From Deleted)

23