数据库期末试题及答案-复习必备.docx
数据库试题 经典问题一, 填空题(共9题,每空1分,共15分)1将数据库从SQL Server实例中删除,即在逻辑上将数据文件与日志文件与服务器相脱离,但文件并不从磁盘上删除,此操作称为_,可通过_将其重新加载到SQL Server实例中。2SQL Server中用于服务器的全部初始化信息与系统级信息的的系统数据库是_。3打开数据库student,使之成为当前数据库,可以运用语句_。4运用T-SQL语句创建存储过程时,若要求对存储过程的定义文本进行加密,应运用_子句。5若要删除sutdent表的全部数据,数据删除后不行撤销,应运用语句_,若想删除student数据表,应运用语句_。6若要对数据库中的对象进行改名,就运用的系统存储过程是_。7Sql Server的数据库文件分为数据文件与_,其中数据文件又分为_与_。8在Sql Server中,按触发的时机,触发器可分为_与_。9在Sql Server的事务处理中,开启一个事务可用Begin Transaction,提交事与撤销事务应运用_与_。二, 简答题(共3题,每题7分,共21分)1在数据库端编程,主要有自定义函数, 存储过程与触发器三种形式,请比较一下这三种方式的异同。2SqlServer有哪些系统数据库,各自的作用是什么?3数据库中的常用完整性有几种?在Sql Server主要通过什么方式实现?三, 应用题(共6题,本题共54分。)1创建名为“Love”的数据库,其中主数据文件为Lovedat.mdf,初始大小为8M,增长大小为1M,日志文件为Lovedat.ldf,初始大小是5M,最大存储空间是30M,增长是5M。请写出相应的SQL语句。(本题8分)2运用sql语句创建表authors,结构如下表所示(本题8分)列名数据类型大小是否为空默认值说明authorIDint4N编号(主键),自动增长authorNamenvarchar50N姓名Phonenvarchar13Y addressnvarchar255Y地址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。其功能是:当随意输入一个学生的姓名时,返回该学生的学号, 选修的课程名与课程成果。然后运用存储过程,查询学生“陈斌”的学号, 选修的课程名与课程成果。数据库试题 答案一, 1数据库分别,数据库附加 2.master 3.use student 4. with encryption; 5.truncate table student,drop table student 6.sp_rename 7. 日志文件, 主要数据文件, 次要数据文件 8.后触发器, 替代触发器 9mit 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,'d:databaselovedat.mdf',size=8,Maxsize=unlimited,) log on (name=lovedat_log,'d:databaselovedat.ldf',size=5,Maxsize=30,)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 null4. (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;四, 1Create trigger insert_sjkh on dbo.上机记录 for insert As beginDeclare asjkh char(13) Declare acount int Select asjkh=上机号from inserted Select acount=count(*) from 上机卡where 上机号=asjkh If acount=0 Print '上机卡中无此卡号,不能插入' Else Print '数据插入胜利' end2. Create PROCEDURE dbo.cjcx axm char(8)ASBEGINSELECT 学生.学号,课程.课程名,课程注册.成果 from 学生,课程,课程注册 where 学生.学号=课程注册.学号 and 课程注册.课程号=课程.课程号 and 姓名=axmEND执行存储过程cjcx,查询“周红瑜”的学号, 选修的课程名与课程成果。Exec cjcx axm=张斌第 6 页