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

mysql用户变量与set语句示例详解

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

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

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

看不清楚,换张图片

免费获取短信验证码

mysql用户变量与set语句示例详解

1 用户变量介绍

用户变量即用户自己定义的变量,我们可以给用户变量分配值,并且可用在任何可以正常使用标量表达式的地方。

引入用户变量之前我们必须使用set语句或select语句来定义它,然后为它赋一个值,否则变量就只有一个空值。

用户变量与连接有关。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。

2 用户变量定义

set语句可用于向系统变量或用户变量赋值,针对用户变量的定义如下:


SET @var_name = expr [, @var_name = expr] ...

也可使用select语句来定义:


SELECT @var_name := expr [, @var_name = expr] ...

用户变量:以"@"开始,形式为"@var_name",以区分用户变量及列名。它可以是任何随机的,复合的标量表达式,只要其中没有列指定。

一个变量名可以由当前字符集的数字字母字符和“_”、“$”和“.”组成。缺省字符集是ISO-8859-1 Latin1;这可以用mysqld 的--default-character-set 选项更改字符集。

对于SET,可以使用=或:=来赋值,对于SELECT只能使用:=来赋值。

我们可以使用一条简单的select语句查询定义的用户变量的值。

3 用户变量的使用

3.1 通过set的实例

用来把一个值赋给一个变量的标量表达式可以是复合表达式。计算,函数,系统标量以及其他用户变量都是允许的,子查询也是允许的。然后通过select语句可以获取一个用户变量的值,结果是带有一行的一个表。


mysql> set @var1=1, @var2='vartest', @var3=abs(-2), @var4=(select count(*) from mysql.user);
mysql> select @var1, @var2, @var3, @var4;
+-------+---------+-------+-------+
| @var1 | @var2 | @var3 | @var4 |
+-------+---------+-------+-------+
|  1 | vartest |  2 | 25 |
+-------+---------+-------+-------+

在用来为一个用户变量赋值的表达式中,也可以指定其它的用户变量,需要注意的是mysql首先确定所有表达式的值,之后才会把值赋给变量。

例如:


mysql> set @varA = 2; 

对于下面两个例子,varB的值是不同的。

例1:


mysql> set @varA = 3, @varB = @varA;
mysql> select @varB;
+-------+
| @varB |
+-------+
|  2 |
+-------+

例2:


mysql> set @varA = 3; 
mysql> set @varB = @varA;
mysql> select @varB;            
+-------+
| @varB |
+-------+
|  3 |
+-------+

    

3.2 通过select的实例

相对set语句而言,使用select定义变量,会返回一个表格形式的结果。


mysql> select @var1:=1, @var2:='vartest', @var3:=abs(-2), @var4:=(select count(*) from mysql.user);
+----------+------------------+----------------+------------------------------------------+
| @var1:=1 | @var2:='vartest' | @var3:=abs(-2) | @var4:=(select count(*) from mysql.user) |
+----------+------------------+----------------+------------------------------------------+
|    1 | vartest     |       2 |                    25 |
+----------+------------------+----------------+------------------------------------------+
mysql> select @var1, @var2, @var3, @var4;
+-------+---------+-------+-------+
| @var1 | @var2  | @var3 | @var4 |
+-------+---------+-------+-------+
|   1 | vartest |   2 |  25 |
+-------+---------+-------+-------+
+-------+---------+-------+-------+
|   1 | vartest |   2 |  25 |
+-------+---------+-------+-------+

4 用户变量注意事项

1 用户变量用在where或having子句中,他们必须首先用另一条语句来定义,如下面例子,初次查询没有返回结果,先定以后在查询才有输出。


mysql> select @H:='localhost' from mysql.user where host = @H;
Empty set (0.00 sec)
mysql> select @H:='localhost';
+-----------------+
| @H:='localhost' |
+-----------------+
| localhost    |
+-----------------+
1 row in set (0.00 sec)
mysql> select @H:='localhost', user from mysql.user where host = @H;
+-----------------+-----------------+
| @H:='localhost' | user      |
+-----------------+-----------------+
| localhost    |         |
| localhost    | jesse      |
| localhost    | local      |
| localhost    | root      |
| localhost    | user_tab_update |
+-----------------+-----------------+

2 用户变量为session级别,当我们关闭客户端或退出登录时用户变量全部消失。如果想用就保存自定义的变量,需要自行创建一个表,将标量insert到表里。

3 用户变量名对大小写不敏感。

4 未定义的变量初始化是null。

5 补充知识:mysql语句do

在do语句中,使用了一个或多个标量表达式,mysql会一条一条的处理它们,但并不显示表达式的结果。例如我们可以调用函数执行后台的某些事情,而不需要看到其结果。

例如:


mysql> do sleep(5);
Query OK, 0 rows affected (5.00 sec)

总结

到此这篇关于mysql用户变量与set语句的文章就介绍到这了,更多相关mysql用户变量与set语句内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

免责声明:

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

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

mysql用户变量与set语句示例详解

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

下载Word文档

猜你喜欢

mysql用户变量与set语句示例详解

1 用户变量介绍用户变量即用户自己定义的变量,我们可以给用户变量分配值,并且可用在任何可以正常使用标量表达式的地方。 引入用户变量之前我们必须使用set语句或select语句来定义它,然后为它赋一个值,否则变量就只有一个空值。 用户变量与连
2022-05-27

go语言的变量定义示例详解

这篇文章主要为大家介绍了go语言的变量定义示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-20

Python __all__变量用法示例详解

这篇文章主要介绍了Python __all__变量用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-14

Mysql的SELECT语句与显示表结构详解

SELECT...SELECT 1+1, 2+2;# 直接这样写相当于下面这句SELECT 1+1, 2+2 FROM DUAL; # 这里DUAL:伪表SELECT ... FROM语法:SELECT 标识选择哪些字段(列)FRO
2023-01-28

MySQL中Replace语句用法实例详解

目录前言php一、replace into函数二、replace into 、insert ignore 和 insert into的区别三、replace函数总结前言replace into平时在开发中很少用到,这次是因为在做一个生成分
2022-08-08

详解shell 变量的高级用法示例

变量删除和替换案例:从头开始匹配,将符合最短的数据删除 (#)variable_1="I love you, Do you love me" echo $variable_1 variable_2=${variable_1#*ov} ech
2022-06-04

WebGL 绘制与变换使用示例详解

这篇文章主要为大家介绍了WebGL 绘制与变换使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

Dart语法之变量声明与数据类型实例详解

这篇文章主要为大家介绍了Dart语法之变量声明与数据类型实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

重学Go语言之变量与常量的声明与使用详解

变量、常量的声明与使用是掌握一门编程语言的基础,在这篇文章中,小编就来带大家学习一下Go语言是怎么样声明和使用变量与常量吧
2023-03-02

Jinja2过滤器的使用、控制语句示例详解

在Python中,如果需要对某个变量进行处理,我们可以通过函数来实现,这篇文章主要介绍了Jinja2过滤器的使用、控制语句,需要的朋友可以参考下
2023-03-02

PHP Session 变量的使用方法详解与实例代码

在php中Session经常用来验证用户注册或登录之后的验证了,下面我来总结session变量的一些常用实例与用法介绍
2022-11-15

编程热搜

目录