搜档网
当前位置:搜档网 › 数据库期末试题及答案

数据库期末试题及答案

数据库试题 4
一、填空题(共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,提交事




和撤销事务应使用____________和___________。
二、简答题(共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 nvarchar 13 Y 电话
address nvarchar 255 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触发器其作用是:当用户在“上机记录”表中插入记录时,若“上机卡”表中没有该上机号,则提示用户不能插入,否则,提示记录插入成功。(附:上机记录表结构:(上机号 char(13),上机日期 datetime,开始时间 datetime,结束时间 datetime,上机状态 bit)。上机卡表结构:(上机号 char(13),姓名……)




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







数据库试题 4 答案
一、1.数据库分离,数据库附加 2.master https://www.sodocs.net/doc/8b14576175.html,e student 4. with encryption; 5.truncate table student,drop table student 6.sp_rename 7. 日志文件、主要数据文件、次要数据文件 8.后触发器、替代触发器 https://www.sodocs.net/doc/8b14576175.html,mit 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 ‘张%’
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=’张斌’




相关主题