计算机三级数据库技术(数据库后台编程技术)机试模拟试卷5
选择题
1.已知有关系R(A,B,C),其中A是主码,现有如下创建索引的SQL语句:
CREATE CLUSTERED INDEX idx1 ON R(B)
则下列说法中正确的是( )。(B)
A. idx1既是聚集索引,也是主索引
B. idx1是聚集索引,但不是主索引
C. idx1是主索引,但不是聚集索引
D. idx1既不是聚集索引,也不是主索引
解析:关键字CLUSTERED表明该索引属于聚集索引,可以排除C、D。由于建立在主码上的索引才是主索引,所以A错。故选择B选项。
2.设有购买表(顾客号,商品号,购买时间)。现要查询2012年顾客A购买了但顾客B没有购买的商品。有下列查询语句:
Ⅰ.SELECT商品号FROM 购买表
WHERE YEAR(购买时间)=‘2012’AND顾客号=‘A’
AND商品号NOT IN(
SELECT商品号FROM购买表
WHERE YEAR(购买时间)=‘2012’AND顾客号=‘B’)
Ⅱ.SELECT商品号FROM购买表
WHERE YEAR(购买时间)=‘2012’AND顾客号=‘A’
EXCEPT
SELECT商品号FROM购买表
WHERE YEAR(购买时间)=‘2012’AND顾客号=‘B’
Ⅲ.SELECT商品号FROM购买表
WHERE YEAR(购买时间)=2012 AND顾客号= ‘A’
INTERSECT
SELECT商品号FROM购买表
WHERE YEAR(购买时间)=‘2012’AND顾客号=‘B’
Ⅳ.SELECT商品号FROM购买表
WHERE YEAR(购买时间)=‘2012’AND顾客号=‘A’
UNION
SELECT商品号FROM 购买表
WHERE YEAR(购买时间)=‘2012’AND顾客号<>‘B’
上述语句中,能够实现该查询要求的是( )(A)
A. 仅Ⅰ和Ⅱ
B. 仅Ⅰ和Ⅲ
C. 仅Ⅰ和Ⅳ
D. 全部
解析:Ⅲ选项中INTERSECT返回两个集合皆有的数据,该SQL语句返回顾客A和B都购买的商品号,不符合题意;Ⅳ选项中的UNION查询出了顾客A购买的商品,通过UNION关键字合并了顾客B没有购买的商品,因此总的视图为顾客A购买的商品和B没有购买的商品总和,不符合要求。Ⅰ、Ⅱ实现的是顾客A购买商品集合与顾客B购买商品集合的差集。因此满足要求的为Ⅰ和Ⅱ,答案为A。
3.下列关于SQL Server 2008触发器的说法,错误的是( )。(D)
A. 触发器可用于实现复杂的业务规则
B. 使用触发器实现数据完整性的效率通常低于CHECK约束
C. 在同一个表的同一个操作上可以建立多个后触发型触发器
D. 当前触发型触发器执行时,引发触发器执行的操作语句已执行完毕
解析:前触发型触发器是在引发该触发器执行的操作语句执行之前激活的触发器,而后触发器就是在语句执行之后激活的触发器。根据触发器的特点可知D选项错误。故选择D选项。
4.下列关于SQL Server 2008触发器的说法,错误的是( )。(B)
A. 触发器可用于实现复杂的业务规则
B. 当触发器执行时都会生成INSERTED表和DELETED表
C. INSERTED表存储的是插入或更新后的数据
D. 当后触发型触发器执行时,引发触发器执行的操作语句已执行完毕
解析:DELETED表用于存储DELETE和UPDATE语句所影响的行的副本;INSERTED表用于存储INSERT和UPDATE语句所影响的行的副本。触发器在执行时并非会同时生成INSERTED表和DELETED表。故答案为B项。
5.下列关于SQL Server 2008中前触发器的说法,正确的是( )。(D)
A. 在前触发器执行之后,再执行引发触发器执行的数据操作语句
B. 定义前触发器使用的选项是FOR
C. 在一个表上只能定义一个前触发器
D. 在一个表上针对同一个数据操作只能定义一个前触发器
解析:使用INSTEAD OF选项定义的触发器为前触发器。在这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代触发的操作。在一个表上可以建立多个名称不同、类型各异的触发器,每个触发器可由所有三个操作来引发。对于前触发器,在一个表上针对同一个数据操作只能定义一个前触发器;对于后触发器,可以在同—种操作上建立多个触发器。故答案为D项。
6.下列关于存储过程的说法,正确的是( )。(D)
A. 一个存储过程不能有多个输入参数
B. 一个存储过程不能有多个输出参数
C. 一个存储过程可以有多个输入参数,但只能有一个输出参数
D. 一个存储过程可以同时有输入参数和输出参数
解析:在创建存储过程时可以声明一个或多个参数。除非定义了参数的默认值或者将参数设置为等于另外一个参数,否则用户在调用存储过程时必须为每个声明的参数提供值。一个存储过程最多可以有2100个参数。故答案为D选项。
7.在SQL Server 2008中,下列关于触发器的说法,正确的是( )。(C)
A. INSERTEDI临时表只能由INSERT操作引发的触发器生成
B. 对于UPDATE操作,触发器将生成UPDATED临时表
C. 触发器可以实现不同表中的列之间的相互取值约束
D. 触发器可以提高数据的更改效率
解析:触发器是一种特殊的存储过程,其特殊性在于它不需要由用户来直接调用,而是在对表中的数据进行UPDATE、INSERT或DELETE操作时自动触发执行的。触发器通常用于保证业务规则和数据完整性,其主要优点是用户可以用编程的方法来实现复杂的处理逻辑和商业规则,增强了数据完整性约束的功能。
在触发器语句中可以使用两个特殊的临时工作表为INSERTED表和DELETED表。这两个表是在用户执行数据的更改操作时,SQL Server自动创建和管理的。这两个表驻留在内存中,其结构同触发器所作用的基本表的结构,并且只可以被触发器使用,但在触发器中不能直接对这两个临时表中的数据进行更改。DELETED表用于存储DELETE和UPDATE语句所影响的行的副本。INSERTED表用于存储INSERT和UPDATE语句所影响的行的副本。故答案为C项。
8.在SQL Server 2008中,设有职工表(职工号,姓名,所在部门,工资),现要建立查询指定部门平均工资的标量函数。下列语句中正确的是( )。(A)
A. CREATE FUNCTION dbo.f_AvgSalary(@dept varchar(20))
RETURNS INT AS
BEGIN
RETURN(SELECT AVG(工资)FROM职工表 WHERE所在部门=@dept)
END
B. CREATE FUNCTION dbo.f_AvgSalary(@dept
本文档预览:3600字符,共12938字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载