首页 >数据库 >mysql教程 >如何在 MySQL 中声明和使用用户定义的、本地的和服务器系统变量?

如何在 MySQL 中声明和使用用户定义的、本地的和服务器系统变量?

DDD
DDD原创
2025-01-22 03:26:15824浏览

How to Declare and Use User-Defined, Local, and Server System Variables in MySQL?

MySQL变量详解及应用

MySQL中的变量是临时存储值的容器,用于查询执行期间。主要分为三种:用户自定义变量、局部变量和服务器系统变量。

用户自定义变量(@前缀)

  • 声明:无需显式声明
  • 初始值:NULL
  • 数据类型:整数、小数、浮点数、字符串或NULL
  • 作用域:会话级

初始化用户自定义变量:

<code class="language-sql">SET @start = 1, @finish = 10;</code>

示例:在SELECT查询中使用用户自定义变量

<code class="language-sql">SELECT * FROM places WHERE place BETWEEN @start AND @finish;</code>

局部变量(无前缀)

  • 声明:需要使用DECLARE声明
  • 初始值:如果省略DEFAULT子句,则为NULL
  • 数据类型:整数、小数、字符串或NULL
  • 作用域:仅限于声明它们的BEGIN...END块

在存储过程中声明和初始化局部变量:

<code class="language-sql">DECLARE start INT unsigned DEFAULT 1;  
DECLARE finish INT unsigned DEFAULT 10;</code>

示例:在存储过程中使用局部变量

<code class="language-sql">CREATE PROCEDURE sp_test(var1 INT) 
BEGIN   
    DECLARE start  INT unsigned DEFAULT 1;  
    DECLARE finish INT unsigned DEFAULT 10;

    SELECT  var1, start, finish;

    SELECT * FROM places WHERE place BETWEEN start AND finish; 
END; </code>

服务器系统变量(@@前缀)

  • 声明:无需显式声明
  • 初始值:由MySQL服务器设置的默认值
  • 数据类型:取决于变量
  • 作用域:全局(服务器范围)或会话级

查看服务器系统变量的当前值:

<code class="language-sql">SELECT @@sort_buffer_size;</code>

修改服务器系统变量的值:

<code class="language-sql">SET GLOBAL sort_buffer_size=1000000;</code>

以上是如何在 MySQL 中声明和使用用户定义的、本地的和服务器系统变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn