mysql 怎么定义变量

mysql 怎么定义变量,第1张

一、局部变量

局部变量一般用在sql语句块中,比如存储过程的begin/end。其作用域仅限于该语句块,在该语句块执行完毕后,局部变量就消失了。

局部变量一般用declare来声明,可以使用default来说明默认值。

二、用户变量

用户变量的作用域要比局部变量要广。用户变量可以作用于当前整个连接,但是当当前连接断开后,其所定义的用户变量都会消失。

用户变量使用如下(这里我们无须使用declare关键字进行定义,可以直接这样使用):

select @变量名

对用户变量赋值有两种方式,一种是直接用"="号,另一种是用":="号。其区别在于使用set命令对用户变量进行赋值时,两种方式都可以使用;当使用select语句对用户变量进行赋值时,只能使用":="方式,因为在select语句中,"="号被看作是比较 *** 作符。

下面是一个简单的 存储过程的例子.

DECLARE v_index INT

定义一个 名称为 v_index 的变量, 类型为 INT

MYSQL 变量定义应该只能在 存储过程, 函数里面定义.

不像 Oracle / SQL Server , 一个 BEGIN / END 里面就可以定义/执行了。

mysql>DELIMITER //

mysql>CREATE PROCEDURE TestWhile()

->BEGIN

-> DECLARE v_index INT

->

-> SET v_index = 0

->

-> WHILE v_index <5 DO

->SET v_index = v_index + 1

->SELECT v_index

-> END WHILE

->

->END//

Query OK, 0 rows affected (0.00 sec)

mysql中 = 一般是做比较的, 而 := 才是赋值, 在不引起歧义的情况下 = 和 := 是通用的

mysql中这两种方式都能在select被赋值, 区别也就下面的一点区别


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7207481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存