2025年09月计算机二级MySQL选择题每日一练——第四期

计算机二级中选择题是非常重要的,所以开始写一个每日一题的专栏。

答案及解析将在末尾公布!

今日主题:数据库编程基础

1、设 db_association 数据库中有社团表tb_group(gno, gname, gdate, gcomment)和学生参加社团表tb_gs(gno, sno, gjob),设有触发器:

CREATE TRIGGER trg_group BEFORE DELETE ON tb_group  
FOR EACH ROW  
DELETE FROM tb_gs WHERE tb_gs.gno = OLD.gno;  

以下关于该触发器的叙述中,错误的是( )
A. 语法有误,FROM 子句中没有列出 OLD 表
B. OLD 是结构与 tb_group 相同的虚拟表
C. 删除表 tb_group 中的数据时,自动删除 tb_gs 表中具有相同 gno 的记录
D. 触发器响应 tb_group 表的删除操作

2、以下关于存储过程的特点,描述错误的是( )
A. 由于存储过程具有良好的封装性,所以当客户端从远程调用服务器端的存储过程时,会增加网络的负载
B. 使用存储过程可以在一定程度上保证数据库的安全性
C. 存储过程可用流程控制语句编写,可进行复杂的判断和一些较复杂的运算
D. 存储过程执行性能高

3、在 MySQL 中编写存储函数、存储过程时,不可以使用的循环语句是( )
A. WHILE…END WHILE 循环语句
B. FOR (…; …; …) 循环语句
C. REPEAT 循环语句
D. LOOP 循环语句

4、在 INSERT 触发器中,对于 AUTO_INCREMENT 列,NEW 在 INSERT 执行之前包含的值是( )
A. 原有值 + 1
B. 新的自动生成值
C. NULL
D. 0

5、PHP 中,选定某个数据库的函数是( )
A. mysql_select_db
B. mysql_pconnect_db
C. mysql_connect_db
D. mysql_query_db

6、在 MySQL 的命令行中调用带有一个参数的存储过程 sp 和存储函数 fn 的正确方法分别是( )
A. CALL sp('p1'), SELECT fn('p1');
B. SELECT sp('p1'), CALL fn('p1');
C. CALL sp('p1'), CALL fn('p1');
D. SELECT sp('p1'), SELECT fn('p1');

7、MySQL 常用的循环语句不包括( )
A. REPEAT 语句
B. LOOP 语句
C. DO…WHILE 语句
D. WHILE 语句

8、MySQL 中可对事件调度器进行开启操作的配置文件是( )
A. sql.ini
B. mysql.ini
C. my.ini

9、设有如下存储函数定义:

DELIMITER $$  
CREATE FUNCTION countGroup(grp CHAR(10))  
RETURNS INT  
DETERMINISTIC  
BEGIN  
  RETURN (SELECT COUNT(*) FROM tb_gs WHERE gno=grp);  
END $$  
DELIMITER ;  

正确调用存储函数 countGroup 的语句是( )
A. SELECT db_association.countGroup('g100');
B. SHOW FUNCTION db_association.countGroup;
C. SELECT * FROM db_association.countGroup;
D. CALL db_association.countGroup('g100');

10、下列关于变量使用的描述中,正确的是( )
A. 各种变量都必须以 “@” 开头
B. 在存储函数中只能使用局部变量
C. 各种变量都必须使用 SET 语句进行定义
D. 局部变量只在 BEGIN-END 语句块之间有效

1、答案:A
解析:OLD 是触发器中引用被删除记录的虚拟表(与 tb_group 结构一致),语句正确,A 错误;触发器在删除 tb_group 前,删除 tb_gs 中关联的记录,C、D 正确。

2、答案:A
解析:存储过程在服务器端执行,仅传输调用命令和结果,减少网络负载,A 错误;B、C、D 均正确,存储过程可封装逻辑、提高安全性和性能。

3、答案:B
解析:MySQL 存储程序支持 WHILE、REPEAT、LOOP 循环,不支持类似 C 语言的for(i=0;i<10;i++)格式的 FOR 循环。

4、答案:D
解析:AUTO_INCREMENT 列在 INSERT 前,NEW 虚拟表中该字段值为 0,执行后自动生成递增的值。

5、答案:A
解析:mysql_select_db($dbname)用于选择数据库;mysql_connect用于连接服务器;B、C、D 均为错误函数名。

6、答案:A
解析:存储过程用CALL调用,存储函数用SELECT调用(需返回值)。

7、答案:C
解析:MySQL 中无 DO…WHILE 循环,其他三种均支持。

8、答案:C
解析:my.ini 是 MySQL 的主要配置文件,可在其中设置event_scheduler=ON开启事件调度器。

9、答案:A
解析:存储函数通过SELECT调用,需指定数据库名(若未切换到该库);CALL 用于存储过程,D 错误。

10、答案:D
解析:局部变量用DECLARE声明,仅在 BEGIN-END 块中有效;用户变量以 @开头,系统变量以 @@开头(A 错误);存储函数中可使用局部变量和用户变量(B 错误);局部变量用 DECLARE 定义,无需 SET(C 错误)。

完整版 PDF(含二级更多题目题库)
点击下载

以上就是本期内容,如有错误请指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值