mysql 变量作用域_二十二、MySQL基础系列笔记之变量

本文介绍了MySQL中的变量类型,包括系统变量(全局变量和会话变量)和用户自定义变量(全局与局部)。详细阐述了各种变量的作用域、查看与赋值方法,并通过实例演示了如何使用这些变量。
摘要由CSDN通过智能技术生成

什么MySQL变量

MySQL本质是一种编程语言,变量用来存储数据。

与所有语言一样,变量是用来存储数据的。我们平常所写的SQL语句,实际上是在SQL编程。

MySQL两种变量

MySQL变量分为系统变量与用户自定义变量。系统变量一看就明白,系统已经定义好的变量;用户自定义变量就是用户自己的定义的变量。

系统变量

系统变量是由系统内部定义的变量,对所有用户有效。

系统变量又分为全局变量和会话变量。

全局变量

作用域:全局变量针对所有会话(连接)有效,不能重启。

查看全局变量语法SHOW GLOBAL VARIABLES [LIKE] 变量名;

案例

查看所有全局变量SHOW GLOBAL VARIABLES;

查看部分全局变量SHOW GLOBAL VARIABLES LIKE '%char%';

查看指定全局变量的值SELECT @@GLOBAL.autocommit;

为指定的全局变量赋值SET @@global.autocommit=0;

会话变量

作用域:针对当前会话(连接)有效。

查看会话变量语法SHOW SESSION VARIABLES [LIKE] 变量名;

查看所有会话变量SHOW SESSION VARIABLES;

查看部分会话变量SHOW SESSION VARIABLES LIKE '%char%';

查看指定会话变量的值# 方式一 (推荐)

SELECT @@session.autocommit;

# 方式二

SELECT @@autocommit;

为指定的会话变量赋值# 方式一

SET session autocommit=1;

# 方式二

SET @@autocommit=0;

用户自定义变量

用户自定义变量分为全局变量与局部变量。全局变量在任何地方可以使用;局部变量只能在定义它的begin end中有效。

用户变量

自定义变量语法

声明并初始化变量# 方式一

SET @用户变量名=值;

# 方式二

SET @用户变量名:=值;

# 方式三

SET @用户变量名 := 值;

变量赋值:SET或SELECT# 方式一

SET @用户变量名=值;

# 方式二

SET @用户变量名:=值;

# 方式三

SELECT @用户变量名:=值;# 也可以通过SELECT INTO方式

SELECT 字段名或表达式 INTO @变量名 FROM 表名;

# 案例

select id+10 into @uuid from user where id = 8;

查看变量SELECT @用户变量名;

案例# 声明变量并赋值

SET @age := 19;

# 更新变量值

SET @age := 20;

# 查看变量值

SELECT @age;

局部变量

局部变量声明语法DECLATE 变量名 类型 [DEFAULT 值];

类型:MySQL支持的数据类型,如varchar。

局部变量赋值SET 变量名=值;

SET 变量名:=值;

SELECT 变量名=值;# 方式二

SELECT 字段名或表达式 INTO @变量名 FROM 表名;

使用SELECT 变量名;

案例# 声明一个用户变量(实际上就是全局变量)

SET @uname = '王五';

# 创建一个存储过程

DELIMITER $$

CREATE PROCEDURE proc2()

BEGIN

select @uname;

end $$

# 调用存储过程

call proc2(); # 结果输出 “王五"

用户变量与局部变量对比作用域定义位置语法用户变量当前会话会话任何地方加@符号,不指定类型

局部变量定义在cegin end之间beging end的第一句话不加@符号,需要指定类型

我是小白,期待和优秀的你一起同行!

小白

2020年11月07日

转载:感谢您对自如初博客网站的认可,所有文章均属原创文章,技术类文章转载请注明出处,“自如初博客”;文学类文章请带文本链接地址,否则视为侵权!

很赞哦!(3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值