MySQL教程110-MySQL变量的定义和赋值
在 MySQL 中,除了支持标准的存储过程和函数外,还引入了表达式。表达式与其它高级语言的表达式一样,由变量、运算符和流程控制来构成。
变量是表达式语句中最基本的元素,可以用来临时存储数据。在存储过程和函数中都可以定义和使用变量。用户可以使用 DECLARE 关键字来定义变量,定义后可以为变量赋值。这些变量的作用范围是 BEGIN...END 程序段中。
下面将讲解如何定义变量和为变量赋值。
1. 定义变量
MySQL 中可以使用 DECLARE 关键字来定义变量,其基本语法如下:
DECLARE var_name[,var_name...] type [DEFAULT value]
其中:
- DECLARE 关键字是用来声明变量的;
- var_name 参数是变量的名称,这里可以同时定义多个变量, 逗号分割;
- type 参数用来指定变量的类型;
- DEFAULT value 子句将变量默认值设置为 value,没有使用 DEFAULT 子句时,默认值为 NULL。
例 1
下面定义变量 my_sql,数据类型为 INT 类型,默认值为 10。SQL 语句如下:
DECLARE my_sql INT DEFAULT 10;
2. 为变量赋值
MySQL 中可以使用 SET 关键字来为变量赋值,SET 语句的基本语法如下:
SET var_name = expr[,var_name = expr]...
其中:
- SET 关键字用来为变量赋值;
- var_name 参数是变量的名称;
- expr 参数是赋值表达式。
注意:一个 SET 语句可以同时为多个变量赋值,各个变量的赋值语句之间用逗号隔开。
例 2
下面为变量 my_sql 赋值为 30。SQL 语句如下:
SET my_sql=30;
MySQL 中还可以使用 SELECT..INTO 语句为变量赋值。其基本语法如下:
SELECT col_name [...] INTO var_name[,...] FROM table_name WHERE condition
其中:
- col_name 参数表示查询的字段名称;
- var_name 参数是变量的名称;
- table_name 参数指表的名称;
- condition 参数指查询条件。
注意:当将查询结果赋值给变量时,该查询语句的返回结果只能是单行。
set @变量名=值, 此处的变量不需要声明,mysql会自动根据值类型来确定类型,这种变量要在变量名称前面加上“@”符号,叫做会话变量,代表整个会话过程他都是有作用的,这个有点类似于全局变量一样, 会话变量只对当前数据库的当前连接有效, 其他数据库或者退出之后重新登录, 此变量都会失效, 查询变量使用select, 如下
mysql> set @X1=30; Query OK, 0 rows affected (0.00 sec) mysql> select @X1; +------+ | @X1 | +------+ | 30 | +------+ 1 row in set (0.00 sec)
例 3
下面从 tb_student_info 表中查询 id 为 2 的记录,将该记录的 id 值赋给变量 my_sql。SQL 语句如下:
SELECT id INTO my_sql FROM tb_student_info WHERE id=2;
分类:
MySQL教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)