Mysql基础:存储过程之变量

要使用存储过程,就必须先了解变量的语法

变量

尝鲜

理解枯燥的概念前,可以先试试,下面的SQL语句,看会打印出什么?

  • 系统变量
SHOW GLOBAL VARIABLES; -- 查看所有的全局变量
SHOW SESSION VARIABLES; -- 查看所有的会话变量
SHOW SESSION VARIABLES like '%char%'; -- 筛选显示会话变量
select @@global.character_set_client; -- 查看某个具体的全局变量的值
select @@session.character_set_client;-- 查看某个具体的会话变量 的值
set global character_set_client = gbk; -- 设置全局的编码为gbk
select @@global.character_set_client; -- 查询编码 显示gbk
set @@global.character_set_client = utf8; -- 设置编码为utf8,作用第6条一样
set @@session.character_set_client = utf8; -- 设置会话变量为utf8
  • 自定义变量
set @m = 1;
set @n = 2;
set @sum = @m + @n;
select @sum; -- 打印结果:3

分类

变量分为以下4种,从属关系如下:

变量
系统变量
自定义变量
全局变量
会话变量
用户变量
局部变量

系统变量

  • 全局变量: 类似于我们操作系统的环境变量,针对所有的用户的,大家都有效
  • 会话变量: 只对本次会话有效,修改对其他会话无效的
使用语法

全局变量和会话变量的语法如下:

  • 查看所有的变量
SHOW GLOBAL|[SESSION] VARIABLES;  -- session可以不写
  • 查看满足条件的部分变量
SHOW GLOBAL |[SESSION] VARIABLES like '%条件%'; -- like就是筛选条件
  • 查看指定的某个系统的变量的值
select @@global|[session].系统变量名;
  • 为某个变量赋值
set global|[session] 系统变量名 =;

或者

set @@global|[session].系统变量名 =;

自定义变量

  • 用户变量: 本次会话有效,使用前必须声明并初始化
  • 局部变量: 只能在begin end 中使用,并且必须放在第一句话,注意需要限定类型
用户变量使用语法
  • 声明的三种方式
SET @用户变量名=;
SET @用户变量名:=;
select @用户变量名:=;
  • 赋值(再次声明也可以算赋值),也可以在查询中赋值(用户变量)
select 字段 into 变量名 from;
  • 使用(用户变量)
select @变量名;
局部变量使用语法
  • 声明也分为2种,必须放在begin end中,可以在存储过程中学习
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT; -- 设默认值
  • 赋值
SET 局部变量名=;
SET 局部变量名:=;
select @局部变量名:=; --注意设立有@

或者

select 字段 into 变量名 from;
  • 使用方式在存储过程中学习吧
select @变量名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值