题目
在MySQL中,不能在整个会话期间都有作用的是下列标识符可以作为使用的是()。A. 用户变量B. 系统变量C. 局部变量D. 全局变量
在MySQL中,不能在整个会话期间都有作用的是下列标识符可以作为使用的是()。
A. 用户变量
B. 系统变量
C. 局部变量
D. 全局变量
题目解答
答案
C. 局部变量
解析
本题考查MySQL中不同变量的作用范围,需明确用户变量、系统变量、局部变量和全局变量的生命周期特点。关键点在于理解各变量的作用域是否覆盖整个会话期间:
- 用户变量(@开头):会话期间有效,直到会话结束。
- 系统变量(如
@@session级别):会话级别变量在会话期间有效。 - 局部变量(在存储过程/函数内声明):仅在声明块内有效,存储过程执行完毕后失效。
- 全局变量(
@@global级别):作用于整个服务器,与会话无关。
破题关键:局部变量的作用域仅限于存储过程/函数内部,无法贯穿整个会话。
选项分析
A. 用户变量
- 用户变量以
@开头,通过SET @var = value定义。 - 作用范围:从定义到会话结束,始终有效。
B. 系统变量
- 系统变量分为全局(
@@global)和会话(@@session)级别。 - 会话变量:在当前会话期间有效,直至会话结束或被修改。
C. 局部变量
- 在存储过程或函数中用
DECLARE声明。 - 作用范围:仅限于声明块内部(如存储过程执行期间),块执行完毕后变量失效。
- 关键点:会话可能包含多个存储过程调用,但局部变量仅在单次调用的块内存在,无法跨存储过程或会话全程使用。
D. 全局变量
- 全局变量(如
@@global.max_connections)作用于整个MySQL服务器。 - 生命周期:服务器运行期间有效,与会话无关。