首页 > 数据库 > mysql教程 > MySQL 中的用户定义变量、本地变量和系统变量有什么区别?

MySQL 中的用户定义变量、本地变量和系统变量有什么区别?

Linda Hamilton
发布: 2025-01-22 03:11:10
原创
798 人浏览过

What's the Difference Between User-Defined, Local, and System Variables in MySQL?

MySQL变量声明与使用

在MySQL中,为了在第二个查询中使用变量,需要先声明并初始化它们。

用户自定义变量(以@开头)

  • 无需声明。
  • 可直接访问,无需事先声明或初始化。
  • 未初始化时值为NULL,数据类型为字符串。
  • 使用SET或SELECT语句进行初始化。
  • 会话特定(其他客户端无法查看或使用)。
  • 例如:
    SET @start = 1, @finish = 10;
    SELECT * FROM places WHERE place BETWEEN @start AND @finish;
    登录后复制

局部变量(无前缀)

  • 需要使用DECLARE声明。
  • 用于存储过程中作为输入参数或局部变量。
  • 例如:
    DECLARE start INT unsigned DEFAULT 1;
    DECLARE finish INT unsigned DEFAULT 10;
    登录后复制
  • 若缺少DEFAULT子句,初始值为NULL。
  • 作用域仅限于声明它们的BEGIN...END块。

服务器系统变量(以@@开头)

  • 由MySQL服务器管理的系统变量。
  • 可以是GLOBAL(全局)、SESSION(会话)或BOTH(两者)。
  • 影响服务器操作(GLOBAL)或单个客户端连接(SESSION)。
  • 使用SHOW VARIABLES或SELECT @@var_name查看。
  • 使用SET GLOBAL或SET SESSION动态修改。
  • 例如:
    SET GLOBAL sort_buffer_size=1000000;
    登录后复制

以上是MySQL 中的用户定义变量、本地变量和系统变量有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板