计算机三级数据库技术(数据库后台编程技术)机试模拟试卷6
选择题
1.查询处理器和存储管理器是数据库管理系统中的核心模块。下列关于查询处理器和存储管理器的说法,错误的是( )(B)
A. 查询处理器中的DML编译器会对用户提交的DML语句进行优化,并将其转换成能够执行的底层数据库操作指令
B. 存储管理器中的查询执行引擎会根据编译器产生的指令完成具体数据库数据访问功能
C. 存储管理器中的缓冲区管理器负责将从磁盘读出的数据块放入内存缓冲区,同时也负责对缓冲区中的数据块进行维护
D. 查询处理器中的DDL编译器编译或解释用户提交的DDL语句,并将生成的元数据存储在数据库的数据字典中
解析:查询处理器中最主要的模块是查询编译器和查询执行器,负责DML语句解析和执行,因此B项中所阐述的不是存储管理器的功能,应该是查询处理器的功能。
2.设某数据库在非工作时间(每天8:00以前、18:00以后、周六和周日)不允许授权用户在职工表中插入数据。下列方法中能够实现此需求且最为合理的是( )(D)
A. 建立存储过程
B. 建立后触发型触发器
C. 定义内嵌表值函数
D. 建立前触发型触发器
解析:触发器是用户定义在关系表上的一类由时间驱动的特殊过程。一旦定义,任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制,类似于约束。前触发型触发器只执行触发器指定的内容而不执行引发触发器的SQL语句,为职工表中插入数据设定一个非工作时间的前触发型触发器后就可实现该功能。所以选D。
3.下列关于SQL Server 2008触发器的说法,错误的是( )。(B)
A. 触发器可以实现复杂的完整性约束
B. 在一个表上可以为同一个操作建立多个前触发型触发器
C. 对DM型触发器,引发触发器执行的操作只能是INSERT、DELETE和UPDATE
D. 使用触发器实现数据完整性的效率通常低于CHECK约束
解析:一张表上可以建立多个后触发器,但只能建立一个前触发器。
4.下列关于SQL Server 2008触发器的说法,错误的是( )。(B)
A. 利用登录触发器可以实现用户登录审计
B. 在视图上可以定义AFTER型触发器,但不可以定义INSTEAD OF型触发器
C. 在一个表上可以建立多个名称不同的针对同一个操作的AFTER型触发器
D. 针对一个表的同一个操作只能定义一个INSTEAD OF型触发器
解析:不能在视图上定义AFTER型触发器,故答案为B选项。
5.下列关于存储过程的说法,错误的是( )。(C)
A. 存储过程是调用执行的、存储在服务器端的代码段
B. 利用存储过程可以提高数据操作性能
C. 存储过程可以接受多个输入参数,但只能有一个输出参数
D. 利用存储过程可以提升数据的安全性
解析:存储过程可以接受多个输入参数,也可以接受多个输出参数。故答案为C选项。
6.下列关于存储过程的说法,正确的是( )。(C)
A. 存储过程是存储在客户端应用程序中的可以被调用执行的代码
B. 使用存储过程会降低数据操作效率
C. 存储过程是存储在数据库服务器端的可以被调用执行的代码
D. 使用存储过程只能实现数据查询操作
解析:存储过程是存储在数据库中供所有用户程序调用的子程序,第一次被执行或调用时装载到内存,供其他程序调用,可极大地提高后续程序执行存储过程的效率。使用存储过程可以提高数据操作效率,B选项错误。存储过程可以实现数据查询、数据更新、数据删除等操作。故答案为C选项。
7.下列在T表的DELETE操作上建立后触发型触发器的语句开始部分,正确的是( )。(B)
A. CREATE TRIGGER tri_T_De1 FOR delete ON T AS…
B. CREATE TRIGGER tri_T_De1 ON TFOR delete AS…
C. CREATE TRIGGER tri_T_De1 ON T BEHIND delete AS…
D. CREATE TRIGGER tri_T_De1 BEHIND delete ON T AS…
解析:如果用户要通过数据操作语言(DML)事件编辑数据,则执行DML触发器。DML事件是针对表或视图的INSERT、UPDATE或DELETE语句。建立DML触发器的SQL语句为CREATE TRIGGER,其语法格式为:
CREATE TRIGGER[schema_name.]trigger_name
ON{table|view}
{FOR|AFTER|INSTEAD OF}
{[INSERT][,][UPDATE][,][DELETE]}
AS{sql_statement}
[;]
后触发型触发器主要使用FOR或AFTER选项定义的。故答案为B选项。
8.设在SQL Server 2008中有如下定义存储过程的语句:
CREATE PROC p1
@x char(10), @y int,@z int
下列关于调用该存储过程的语句,正确的是( )。(A)
A. EXEC p1 ‘abc’,200,100
B. EXEC pl‘abc’,100
C. EXEC p1‘abc’,default,100
D. EXEC p1@x=‘abc’,@z=100
解析:调用存储过程相应的参数个数、类型要一一对应。定义存储过程的语句中第一个参数是字符型,第2个和第3个参数是整型,满足题意的选择A选项。故答案为A选项。
9.下列关于SQL Server 2008游标中@@FETCH_STATUS的说法,正确的是( )。(A)
A. 每当对游标执行一次FETCH语句,系统都会自动对@@FETCH_STATUS赋一次值
B. 用户可以对@@FETCH_STATUS变量进行赋值
C. 用户可以在游标中声明@@FETCH_STATUS变量
D. 每个游标都有一个专属于自己的@@FETCH_STATUS变量
解析:在对游标数据进行提取的过程中,可以使用@@FETCH_STATUS全局变量判断数据提取的状态。由于@@FETCH_STATUS对于在一个连接上的所有游标是全局性的,不管是对哪个游标,只要执行一次FETCH语句,系统都会对@@FETCH_STATUS赋—次值,以表明该FETCH语句的执行情况。故答案为A项。
10.设在SQL Server中有如下定义触发器的语句:
CREATE TRIGGER tri_1
ON T1 FOR UPDATE
AS……
下列关于该触发器作用的说法,正确的是( )。(B)
A. 在T1表上定义了一个由数据更改操作引发的前触发型触发器
B. 在T1表上定义了一个由数据更改操作引发的后触发型触发器
C. 在T1表上定义了一个由数据增、删、改操作引发的后触发型触发器
D. 在T1表上定义了一个由数据增、册、改操作引发的前触发型触发器
解析:建立DML触发器SQL语句为CREATE
本文档预览:3600字符,共10807字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载