定义变量mysql_如何在MySQL中声明一个变量?

MySQL中主要有三种类型的变量:

1.用户定义的变量(前缀为@):

您可以访问任何用户定义的变量,而不声明它或初始化它。 如果引用尚未初始化的变量,则它的值为NULL,并且类型为字符串。

SELECT @var_any_var_name

您可以使用SET或SELECT语句初始化变量:

SET @start = 1, @finish = 10;

或者

SELECT @start := 1, @finish := 10;

SELECT * FROM places WHERE place BETWEEN @start AND @finish;

用户变量可以从有限的数据类型集合中分配值:整数,小数,浮点数,二进制或非二进制字符串或NULL值。

用户定义的变量是会话特定的。 也就是说,由一个客户端定义的用户变量不能被其他客户端看到或使用。

2.局部变量(无前缀):

需要在访问局部变量之前使用DECLARE声明局部变量。

它们可以用作存储过程中的局部变量和输入参数:

DELIMITER //

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; //

DELIMITER ;

CALL sp_test(5);

如果缺少DEFAULT子句,则初始值为NULL。

局部变量的范围是在其中声明的BEGIN … END块。

3.服务器系统变量(以@@为前缀):

MySQL服务器维护许多系统变量配置为默认值。 它们可以是GLOBAL,SESSION或BOTH类型。

全局变量影响服务器的整体操作,而会话变量影响其对各个客户端连接的操作。

要查看正在运行的服务器使用的当前值,请使用SHOW VARIABLES语句或SELECT @@ var_name。

SHOW VARIABLES LIKE ‘%wait_timeout%’;

SELECT @@sort_buffer_size;

它们可以在服务器启动时使用命令行或选项文件中的选项进行设置。 大多数可以在服务器运行时使用SET GLOBAL或SET SESSION动态更改:

— Syntax to Set value to a Global variable:

SET GLOBAL sort_buffer_size=1000000;

SET @@global.sort_buffer_size=1000000;

— Syntax to Set value to a Session variable:

SET sort_buffer_size=1000000;

SET SESSION sort_buffer_size=1000000;

SET @@sort_buffer_size=1000000;

SET @@local.sort_buffer_size=10000;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值