网站建设资讯

NEWS

网站建设资讯

mysql怎么变量,mysql 变量使用

mysql 怎么定义变量

一、局部变量

紫云网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

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

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

二、用户变量

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

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

select @变量名

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

mysql 变量如何设定?

变量总体分为两大类:procedure内部和非procedure内部;

procedure内用declare 声明,作用域仅限于声明的procedure。

另一类就是通常意义上的变量,分为全局(global)和局部(session),用select 或者 set声明,作用域分别是全局和回话级别。

mysql怎么定义变量?

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

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存储过程中,定义变量有两种方式:

  1、使用set或select直接赋值,变量名以@开头,可以在一个会话(即连接)的任何地方声明,作用域是整个会话,称为用户变量。例如:set @var=1;

  2、 以declare关键字声明的变量,只能在存储过程中使用,称为存储过程变量,主要用在存储过程中,或者是给存储传参数中。例如: declare var1 int default 0;

两者的区别是:

    在调用存储过程时,以declare声明的变量都会被初始化为null。而会话变量(即@开头的变量)则不会被再初始化,在一个会话(连接)内,只须初始化一次,之后在会话内都是对上一次计算的结果,就相当于在是这个会话内的全局变量。


当前文章:mysql怎么变量,mysql 变量使用
网站URL:http://njwzjz.com/article/hogdhi.html