《SQL数据库管理与开发教程与实训》试题(D卷)一、单项选择题(每小题1分,共10分)1.数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、()和用户构成。
A.DBMS B.DBC.DBS D.DBA2.数据库管理系统的英文缩写是()。
A.DBMS B.DBSC.DBA D.DB3.在关系运算中,选取符合条件的元组是()运算。
A.除法B.投影C.连接D.选择4.数据库设计中的逻辑结构设计的任务是把()阶段产生的概念数据库模式变换为逻辑结构的数据库模式。
A.需求分析B.物理设计C.逻辑结构设计D.概念结构设计5.一个规范化的关系至少应当满足()的要求。
A.一范式B.二范式C.三范式D.四范式6.在实际数据库设计中,“学号”通常作为()存在。
A.数据结构B.数据存储C.数据项目D.处理过程7.SQL Server 2000中删除表中记录的命令是()。
A.DELETE B.SELECTC.UPDATE D.DROP8.运行命令SELECT ASCII(‘Alklk’)的结果是()。
A.48 B.32C.90 D.659.在SQL中,建立视图用的命令是 ( )。
A.CREATE SCHEMAB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX10.在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。
A. sp_dbhelpB. sp_dbC. sp_helpD. sp_helpdb二、判断题(每空1分,共10分)1.连接、选择和投影三种关系运算具有相同的结果。
2.数据的安全性主要防范的对象是合法用户。
3. 数据库设计前只需选择数据库分析设计人员。
4. 恢复是利用冗余数据来重建数据库。
5.定义外键级级联是为了保证相关表之间数据的一致性吗?6.创建唯一性索引的列可以有一些重复的值?7.存储过程的输出结果可以传递给一个变量。
8.视图具有与表相同的功能,在视图上也可以创建触发器。
9.能在游标中删除数据记录。
10.SQL Server 2000不具有数据的导入与导出功能。
三、填空题(每空1分,共20分)1.数据库三个要素是__________、__________和_____________。
2. 语句 select year('1931-9-18') 的执行结果是____________。
3.__________是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。
4.__________是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。
5.事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么______,要么________(如果在操作执行过程中不能完成其中任一操作)。
6. SQL Server 2000 采用的身份验证模式有________________模式和________模式。
7.用户访问SQL Server数据库时,经过了两个_______验证和________验证安全验证阶段。
8.SQL Server 2000提供的数据库备份方法有_______数据库备份和________数据库备份、____________备份和________________备份。
9.SQL Server代理主要由______、______和警报来组成。
10.SQL Server复制把服务器分为______服务器、______服务器和订阅服务器三种。
四、简述题(每小题5分,共20分)1. 试述关系的含义和性质。
(7分)2.什么是事务?(6分)3. 事务控制语句的使用方法是什么?(7分)五、设计题(1—6题每空2分,第7题10分,共40分)1.计算1+2+3+……+100的和,并使用PRINT显示计算结果。
DECLARE @I int,@sum int,@csum char(10)SELECT @I=1,@sum=0WHILE @I<=________BEGINSELECT @sum = __________SELECT @I=@I+1ENDSELECT @csum=convert(char(10),@sum)__________ ’1+2+3+……+100=’ + @csum2.使用SQL语句创建一个班级表CLASS,属性如下:CLASSNO,DEPARTNO,CLASSNAME;类型均为字符型;长度分别为8、2、20且均不允许为空。
CREATE ________ CLASS(CLASSNO ______ (8) NOT NULL,DEPARTNO CHAR (2) NOT NULL,CLASSNAME CHAR (____) NOT NULL)3.声明一个名为CRSCOURSE的游标,并利用游标遍历,显示整个结果集。
USE XKDECLARE @COUNO VARCHAR(3),@COUNAME VARCHAR(20)_________________________FOR SELECT COUNO,COUNAME FROM COURSE ORDER BY COUNO_________________________FETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAMEWHILE @@FETCH_STATUS=0BEGINPRINT ’课程号:’+ @COUNO +’课程名称:’+ @CouNameFETCH NEXT FROM CRSCOURSE INTO @COUNO,@COUNAMEEND_________________________DEALLOCATE CRSCOURSSE4.使用SQL语句在XK数据库中创建一个名为V_STUDENT的视图,该视图仅查看“STUDENT”表中“00电子商务”班的学生信息。
USE XKCREATE ____________ V_STUDENTASSELECT *FROM ____________WHERE CLASSNO=’20000001’5.使用SQL语句在XK数据库中创建一个名为P_STUDENT的存储过程,该存储过程返回“STUDEND”表中所有班级代码为200000001的记录。
USE XKCREATE ____________ P_STUDENTASSELECT *____________ STUDENTWHERE CLASSNO=’20000001’6.创建触发器TEST,要求每当在STUDENT表中修改数据时,将向客户端显示一条“记录已修改”的消息。
USE XK_________________ON STUDENT_________________ASPR INT ‘记录已修改’7.定义事务向[学生]数据库的[选课表]中插入学号=‘20030021’的多条记录,并检验若报名课程超过4门,则回滚事务,即报名无效,否则成功提交。
选课表(学号,课号,报名号)假设要插入的记录为以下三条:‘20030021’,‘01’,1 ‘20030021’,‘02’,2 ‘20030021’,‘03’,3 根据以上要求编写程序,并指出本题定义的事务是否成功提交。
《SQL数据库管理与开发教程与实训》试题(D卷)参考答案一、单项选择题1.D 2.A 3.D 4.D 5.C 6.C 7.D 8.D 9.C 10.D二、判断题1.N 2.N 3.N 4.Y 5.Y 6.N 7.Y 8.N 9.Y 10.N三、填空题1.数据结构、数据操作、完整性约束2.19313.域完整性4.触发器5.都完成、都取消6.Windows身份验证、混合7.身份、权限8.完整、差异、事务日志、文件和文件组9.操作员、作业10.发布、分发四、简述题1.关系是笛卡尔积的有意义的子集,用二维表格表示;关系的性质如下:关系表中的每一列都是不可再分的基本属性;表中的各属性不能重名;表中的行、列次序不分前后;表中的任意两行不能完全相同。
2.事务(Transaction)可以看成是由对数据库若干操作组成的一个单元,这些操作要么都完成,要么都取消(如果在操作执行过程中不能完成其中任一操作)。
在SQL Server 2000中,事务是由一条或者多条Transact-SQL语句组成的一个工作单元,这些语句要么都正常执行,要么如果有其中任意一条语句执行失败被取消的话,这些语句的执行都被取消。
SQL利用事务机制保证数据修改的一致性,并且在系统出错时确保数据的可恢复性。
3.事务控制语句的使用方法begin transaction…… -- A组语句序列save transaction 保存点1…… -- B组语句序列if @@error <> 0rollback transaction 保存点1 --回滚到:保存点1elsecommit transaction --提交A组语句,同时如果未回滚B组语句则提交B组语句。
五、设计题1.100 @sum+@i print2.table char 203.Declare crscourse cursoropen crscourseclose crscourse4.viewstudent5.procedurefrom6.Alter trigger testfor update7.Use 学生Begin transactionInsert 选课表(学号,课程号,报名号) values(‘20030021’,‘01’,1) Insert 选课表(学号,课程号,报名号) values(‘20030021’,‘02’,2) Insert 选课表(学号,课程号,报名号) values(‘20030021’,‘03’,3) Declare @num intSet @num=(select count(*) from 选课表 where 学号=‘20030021’)If @num>4beginRollback transactionPrint ‘超过报名门数!’endElseBeginCommit transaction Print ‘报名成功!’endgo本题定义的事务成功提交。