我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL详细讲解变量variables的用法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL详细讲解变量variables的用法

变量 variables

mysql本质是一种编程语言

1、系统变量

对所有用户客户端都有效

1.1、查看系统变量

1、方式一

show variables [like 'pattern'];

示例

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+

2、方式二:

使用select查询变量的数据值

select @@变量名;

示例

select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
|            1 |
+--------------+

1.2、修改系统变量

1、局部修改(会话级别)

-- 只针对当前客户端当次连接有效
set 变量名 = 值;
-- eg:
set autocommit = 'off';
show variables like 'autocommit';

2、全局修改

-- 所有客户端,都有效
set global 变量名 = 值;
set @@global.变量名 = 值;
-- eg:
set global autocommit = 'off';

注意,全局修改之后,重启客户端生效

2、会话变量

也称为用户变量,设置的变量,只针对当前用户使用的客户端生效

-- 定义用户变量
set @变量名 = 值;
set @age = 23;

mysql中没有比较符号 == ,使用的是 =;
为了避免分不清是赋值还是比较,赋值使用:=

set @变量名 := 值;
set @name := 'Tom';

mysql允许将数据从表中取出存储到变量中,只能是一行数据

-- 1、赋值且查看赋值过程
select @变量1 := 字段1, @变量2 := 字段2 from 表 where 条件
select @name := name, @age := age from my_student limit 1;
+---------------+-------------+
| @name := name | @age := age |
+---------------+-------------+
| 刘备          |          18 |
+---------------+-------------+
--- 2、只赋值不看过程
select 字段1, 字段2 from 表 where 条件 into @变量1, @变量2;
select name, age from my_student limit 1 into @name, @age;

查看变量

select @变量名
mysql> select @name, @age;
+--------+------+
| @name  | @age |
+--------+------+
| 刘备   |   18 |
+--------+------+

3、局部变量

作用范围在begin到end语句块之间,在该语句块里设置的变量

  • declare语句用于定义局部变量
  • 局部变量 declare语句出现在begin到end语句块之间

声明语法

declare 变量名 数据类型 [属性];

4、变量作用域

变量能够使用的区域范围

4.1、局部作用域

declare 关键字声明 (结构体中使用:函数/存储过程/触发器)

declare关键字声明的变量没有任何符号修饰,就是普通字符串,如果再外部访问该变量,系统会自动认为是字段

4.2、会话作用域

用户定义的,使用@符号定义的变量,使用set关键字

会话作用域,当次连接有效只要再本连接中,任何地方都可以使用(可以在结构内容,也可以跨库)

会话变量可以再函数内部使用

set @name = '张三';
create function get_name() returns char(4)
return @name;
select get_name();
+------------+
| get_name() |
+------------+
| 张三       |
+------------+

会话变量可以跨库

use mydatabase2;
mysql> select @name;
+--------+
| @name  |
+--------+
| 张三   |
+--------+ 

4.3、全局作用域

所有的客户端,所有的连接都有效,需要使用全局符号来定义

set global 变量名 = 值;
set @@global.变量名 = 值;

通常,在sql编程的时候,不会使用自定义变量来控制全局,一般定义会话变量或者结构中使用局部变量来解决问题

到此这篇关于MySQL详细讲解变量variables的用法的文章就介绍到这了,更多相关MySQL variables内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL详细讲解变量variables的用法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL详细讲解变量variables的用法

目录变量 variables1、系统变量1.1、查看系统变量1.2、修改系统变量2、会话变量3、局部变量4、变量作用域4.1、局部作用域4.2、会话作用域4.3、全局作用域变量 variablesmysql本质是一种编程语言1、系统变量
2022-06-18

Vue mergeProps用法详细讲解

这篇文章主要介绍了Vue mergeProps用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2022-11-13

Shell PATH变量用法详解

前面章节我们说过,程序脚本要想在 linux 中运行,需要使用绝对路径或相对路径指定这个脚本所在的位置。但是为什么系统命令都没有指定路径而是直接执行的?比如,ls 命令并没有输入"/bin/ls"来执行,而是直接执行"ls"命令。这就是 P
2022-06-04

C++BoostLockfree超详细讲解使用方法

Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称
2022-11-21

AndroidSurfaceView与TextureView使用方法详细讲解

SurfaceView和TextureView都继承View,与普通的View不同的是,它俩可以在独立线程中绘制渲染,性能更高,所以常被应用在对绘制速率要求比较高的场景,比如相机预览,视频播放等等
2022-11-13

编程热搜

目录