计算机二级中选择题是非常重要的,所以开始写一个每日一题的专栏。
答案及解析将在末尾公布!
今日主题:存储过程与触发器
1、以下关于存储过程的叙述中,错误的是( )
A. 使用存储过程有利于提高系统的安全性
B. 存储过程中可以调用其它存储过程
C. 存储过程可以通过 OUT 参数返回多个值
D. 存储过程可以嵌入到 SELECT 语句中作为查询语句的一部分被调用
2、设有如下存储过程:
DELIMITER $$
CREATE PROCEDURE sp_query(IN no CHAR(10), OUT p INT)
BEGIN
SELECT rprice INTO p FROM tb_room WHERE rno=no;
END $$
正确调用该存储过程的语句是( )
A. CALL sp_query('r100');
B. SELECT sp_query('r100');
C. CALL sp_query('r100', @p);
D. SELECT sp_query('r100', @p);
3、MySQL 中存储过程与存储函数在语法上的区别之一是( )
A. 存储函数的参数只有 IN 类型
B. 存储函数必须有返回值
C. 存储过程有 IN、OUT、INOUT 等三种类型的参数
D. 以上都正确
4、设有如下触发器:
CREATE TRIGGER tr_acct AFTER INSERT ON tb_account
FOR EACH ROW SET @sum=@sum+NEW.amount;
表和触发器创建后执行:
SET @sum=0; INSERT INTO tb_account VALUES(1,7.00); INSERT INTO tb_account VALUES(2,3.00);
则 @sum 的值为( )
A. 3.00
B. 0.00
C. 7.00
D. 10.00
5、关于 MySQL 中的游标,描述不正确的是( )
A. 游标类似于SELECT ... INTO
语句,用于操作一行数据
B. 结束游标使用时,必须关闭游标
C. FETCH...INTO...
语句获取游标当前指针的记录,传给指定变量列表
D. 使用DECLARE...CURSOR
语句声明游标
6、创建存储函数fn_while()
的代码如下,执行SELECT fn_while()
的结果是( )
DELIMITER $$
CREATE FUNCTION fn_while() RETURNS INT
DETERMINISTIC
BEGIN
DECLARE id INT DEFAULT 0;
WHILE id <=10 DO SET id=id+1; END WHILE;
RETURN id;
END $$
A. 12
B. 0
C. 11
D. 10
7、以下关于触发器的叙述中,错误的是( )
A. 触发器一定与某个具体的表相关联
B. SELECT 不会触发触发器
C. INSERT 触发器只能由 INSERT 语句触发
D. INSERT 触发器执行时,可以访问 NEW 表
8、设有事件定义如下,正确的叙述是( )
CREATE EVENT ev_test
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 2 DAY
DO CALL sp_test;
A. 事件每 3 天执行 1 次
B. 事件在第 2 天结束
C. 事件第 1 天没有执行
D. 事件每天执行,直至第 3 天结束
9、MySQL 中,开启游标的语句是( )
A. TURN ON
B. BEGIN
C. FETCH
D. OPEN
10、设有学生表tb_student
,建立如下触发器:
CREATE TRIGGER tr_student BEFORE INSERT ON tb_student FOR EACH ROW SET NEW.sage=19;
执行插入语句后,新记录的sage
值为( )
A. 插入时指定的值
B. 19
C. NULL
D. 0
1、答案:D
解析:存储过程通过CALL
调用,不能嵌入 SELECT 语句;A、B、C 均正确。
2、答案:C
解析:存储过程用CALL
调用,OUT 参数需用用户变量(如 @p)接收;A 错误(缺少 OUT 参数);B、D 错误(存储过程不能用 SELECT 调用)。
3、答案:D
解析:存储函数必须有返回值且参数只能是 IN 类型;存储过程可有 IN、OUT、INOUT 参数,D 正确。
4、答案:D
解析:触发器在每次插入后将NEW.amount
累加到 @sum,两次插入分别加 7 和 3,结果为 10。
5、答案:A
解析:游标用于处理结果集中的多行数据,SELECT ... INTO
仅处理单行,A 错误;B、C、D 均正确。
6、答案:C
解析:循环条件id <=10
,初始 id=0,循环 11 次后 id=11,退出循环并返回 11。
7、答案:C
解析:INSERT 触发器可由 INSERT、REPLACE 等语句触发,C 错误;A、B、D 正确(NEW 表存储新插入的数据)。
8、答案:C
解析:事件从创建后 1 天开始,每天执行,至创建后 2 天结束(共执行 2 次:第 2 天和第 3 天),第 1 天不执行,C 正确。
9、答案:D
解析:游标操作步骤:DECLARE 声明→OPEN 开启→FETCH 获取→CLOSE 关闭。
10、答案:B
解析:BEFORE INSERT 触发器在插入前将sage
设为 19,覆盖插入时指定的值,B 正确。
完整版 PDF(含二级更多题目题库)
点击下载
以上就是本期内容,如有错误请指正!