SET @NUM=@NUM+1 IF ________ CONTINUE ELSE
@SUM=@SUM+@NUM END Print @SUM
(A)SET SUM=0 (B)SET @SUM=0 (C)@NUM<100 (D)@NUM>100 (E)@NUM=100 (F)@NUM%2=0 (G)@NUM MOD 2=0 (H)NUM%2=0 答案:B C H
7.下面程序的功能是统计1到100中所有3的倍数的个数,阅读程序并选择正确答案。 DECLARE @I INT,@CNT INT SET @I=0 SET ___________ WHILE ________ BEGIN
SET @I=@I+1 IF ________ CONTINUE ELSE
@CNT=@CNT+1 END Print @CNT
(A)@CNT=0 (B)CNT=0 (C)@I<100 (D)@I>100 (E)I<100 (F)@I%3=0 (G)@I MOD 3<>0 (H)I%3<>0 答案:A C H
二、填空题
1.常量是指程序运行过程中值不变的量,根据常量值的不同类型,常量可以分为字符常量、________、实型常量、日期时间型和货币型常量等,其中字符型常量必须用________括起来。 答案:整型常量、单引号
2.变量是指在程序运行过程中值发生变化的量,在SQL Server中变量分为________和________两种。
答案: 全局变量 局部变量 3.下面程序执行的结果是________。
DECLARE @C1 Char(20),@C2 Char(10),@C3 Char(6) SET @C1=? SqlServer ?
第 13 页 共 19 页
SET @C2=? 2000 ?
SET @C3=Substring(LTrim(RTrim(@C1))+LTrim(RTrim(@C2)),4,6) Print @C3 答案:Server
第七章 索引与数据完整性
一、单项选择题
1.下列关于索引描述中,______是不正确的。
(A)聚集索引是指数据行的物理存储顺序与索引顺序完全相同,每表只能有一个 (B)非聚集索引具有完全独立于数据行的结构,索引不改变表中数据行的物理存储顺序 (C)唯一索引可以确保表中数据行的唯一性
(D)聚集索引和非聚集索引原理完全相同,但聚集索引每表只能有一个,而非聚集索引
每表可以有多个 答案:A
2.在SQL Server 2000中,______可以保证表间数据的一致性。
(A)实体完整性 (B)参照完整性 (C)域完整性 (D)索引 答案:B
二、填空题
1.索引可以提高检索数据的能力和速度,SQL Server 2000的索引分为三种类型,即:________、________和唯一索引三种。 答案: 聚集索引 非聚集索引
2.在SQL Server 2000中,创建索引的Transact-SQL命令是________,而删除索引的Transact-SQL命令是________。 答案:create index drop index
3.在SQL Server 2000中,数据完整性通常是指数据的精确性和可靠性,其类型可以划分为三种,即:________、________和用户自定义完整性三种。 答案:
4.在SQL Server 2000中,参照完整性是建立在________和________之间或________和________之间的关联关系上。
答案:外关键字、主关键字、外关键字、唯一性关键字
三、简答题
1.PRIMARY KEY约束与UNIQUE约束的异同。
答:二者都能保证表中实体的完整性,但仍存在一些不同,主要表现为:
①.PRIMARY KEY约束通过为主键创建唯一性索引,强制主键列数据的唯一性,而UNIQUE约束确保在非主键列中不出现重复值。
②.PRIMARY KEY约束每表只能创建一个,而UNIQUE约束每表可以创建多个。
③.PRIMARY KEY约束的列值不允许出现空值,而UNIQUE约束的列值允许出现一个空值。
第 14 页 共 19 页
四、综合应用题
1.使用CREATE TABLE命令在创建成绩表(学号,课程号,成绩)时定义一个名为PK_KS的表级PRIMARY KEY约束,主键为属性组(学号,课程号),试写出正确的Transact-SQL语句。
答:CREATE TABLE 成绩表 ( 学号 Int,
课程号 Int, 成绩 Int,
CONSTRAINT PK_KS Primary Key(学号,课程号))
2.使用CREATE TABLE命令创建成绩表(学号,课程号,成绩)时定义一个名为Ch_Score的Check约束来限制成绩只能在[0,100]之间,试写出正确的Transact-SQL语句。 答:CREATE TABLE 成绩表 ( 学号 Int,
课程号 Int, 成绩 Int,
CONSTRAINT Ch_Score Check(成绩>=0 AND 成绩<=100))
第八章 存储过程和触发器
一、单项选择题
1.在SQL Server 2000中,用户存储过程只能定义在当前数据库中,创建存储过程的Trans-SQL语句是______。
(A)CREATE PROCEDURE (B)ALTER PROCEDURE (C)UPDATE PROCEDURE (D)DROP PROCEDURE 答案:A
2.在调用SQL Server 2000的存储过程时,若调用语句是批处理中的第一条语句,则可以省略______关键字。
(A)CALL (B)EXECUTE (C)SHELL (D)COM 答案:B
二、填空题
1.SQL Server 2000支持的存储过程包括五种类型,即:系统存储过程、________临时存储过程、远程存储过程和扩展存储过程。系统存储过程定义在________数据库中,其前缀是________。
答案:本地存储过程、Master、SP_
三、简答题
1.简述存储过程基本概念及优点。
答:存储过程是独立存在于表之外的数据库对象,由被编译在一起的一组Transact-SQL语
第 15 页 共 19 页
句组成,可以被客户调用,也可以被另一存储过程或触发器调用,并且在服务器端运行,执行速度快,安全性高。主要优点表现为:
①.在服务器端运行,执行速度快。
②.存储过程执行一次后,执行规划驻留在高速缓存,提高系统性能。 ③.确保数据库的安全。
④.自动完成需要预先执行的任务。 2.简述触发器基本概念、类型和工作方式。
答:触发器是一种特殊类型的存储过程,它不能显示地被调用,它是在指定的表中插入记录、更新记录或者删除记录时被自动激活。在SQLServer 2000中有三种类型的触发器,即:Insert触发器、Update触发器和Delete触发器。它们的工作方式如下:
①.Insert触发器:当向表中插入新记录时被触发执行。 ②.Update触发器:当更新表中记录时被触发执行。 ③.Delete触发器:当删除表中记录时被触发执行。
四、综合应用题
1.试用Transact-SQL语句创建一个简单的用户存储过程,存储过程名为STU_INFO_PRO,用于从学生信息表Stident_Info中检索家住“北京市”的学生姓名、性别和家庭住址。 答:CREATE PROCEDURE STU_INFO_PRO
AS
SELECT Student_Name,Student_Sex,Address FROM Student_Info
WHERE Substring(Address,1,3)=?北京市?
2.试用Transact-SQL语句创建一个用户存储过程,存储过程名为Query_Stu_Info,要求根据学生的学号查询出该生的姓名和住址,并返回到@Stu_Name和@Stu_Address两个输出参数变量中。
答:CREATE PROCEDURE Query_Stu_Info ( @Stu_ID Int,
@Stu_Name char(10) OUTPUT, @Stu_Address Char(30) OUTPUT)
AS
SELECT @Stu_Name=Student_Name,@Stu_Address=Address FROM Student_Info
WHERE Student_ID=@Stu_ID
3.针对Score_Info数据库表,创建一个名为Check_Score的触发器,检查插入或修改的成绩是否在[0,100]之间。
答:CREATE TRIGGER Check_Score On Score_Info
For Insert,Update As
第 16 页 共 19 页

