MySQL中的变量类型

翻译自http://stackoverflow.com/questions/11754781/how-to-declare-a-variable-in-mysql

MySQL中主要有三种变量:


1.User-defined variables用户变量
你可以获取任何用户自定义变量不需要事先声明或初始化。如果你获取还未初始化的变量,那么它的值为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;

用户变量可以被指定为下列这些有限的数据类型:
nteger, decimal, floating-point, binary or nonbinary string, or NULL value.
用户变量只可以被定义它的用户所使用。

2.Local Variables局部变量
局部变量使用前需要先通过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.Server System Variables
MySQL服务器有很多被配置为默认值的系统变量。这些系统变量包含全局类型的、会话的或者两者都有的。

全局变量会影响整个服务器的操作而为会话变量只影响个人客户端连接。
我们可以使用SHOW VARIABLES语句或SELECT @@var_name看到正在运行的服务器上当前所使用的变量。

SHOW VARIABLES LIKE '%wait_timeout%';

SELECT @@sort_buffer_size;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值