MYSQL初阶学习笔记——变量
#变量
/*
variable
1.分类:
系统变量
全局变量
会话变量
自定义变量
用户变量
局部变量
*/
#一、系统变量
/*
1.作用域
全局变量:服务器每次启动将所有全局变量赋值。
针对所有会话连接有效,但不能跨重启,即重启服务器即恢复原初始值,若要实现跨服务器需修改配置文件
会话变量:仅仅针对于当前会话连接有效
2.说明:
变量由系统提供,不是用户定义,属于服务器层面
3.语法:
(GLOBAL|SESSION位置不写时,默认为会话变量)
1.查看所有的系统变量
全局/会话
SHOW GLOBAL/SESSION VARIABLES;
2.查看满足条件的部分系统变量
全局/会话
SHOW GLOBAL/SESSION VARIABLES LIKE '%char%';#查看包含char字符的系统变量
3.查看指定的某个系统变量的值
SELECT @@GLOBAL/SESSION.系统变量名;
4.为某个系统变量赋值
方式一:
SET GLOBAL/SESSION 系统变量名=值;
方式二:
SET @@GLOBAL/SESSION.系统变量名=值;
*/
#演示:
SHOW GLOBAL VARIABLES;
SHOW SESSION VARIABLES;
SHOW GLOBAL VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%';
SELECT @@GLOBAL.autocommit;
SELECT @@tx_isolation;
SET @@GLOBAL.autocommit=0;
SET GLOBAL autocommit=1;
#二、自定义变量
/*
1.使用步骤
a.声明 b.赋值 c.使用(查看、比较、运算)
2.作用域:
用户变量:针对当前对话连接有效,应用在任何地方,也就是begin end里面或外面都可以
局部变量:仅仅定义在它所在的begin end 中有效,只能在begin end第一句话
3.对比
#用户变量和局部变量的对比
作用域 定义位置 语法
用户变量 当前会话 会话的任何地方 加@符号,不用指定类型
局部变量 定义它的BEGIN END中 BEGIN END的第一句话 一般不用加@,需要指定类型
*/
#1.用户变量
/*
赋值的操作符:=或:=
#1.声明并初始化
set @用户变量名=值;或
set @用户变量名:=值;或
select @用户变量名:=值;
#2.赋值
方式一:
set @用户变量名=值;或
set @用户变量名:=值;或
select @用户变量名:=值;
方式二:
Select 字段 into @变量名
from 表名;
#3.使用(查看用户变量的值)
Select @用户变量名;
*/
#案例:
SET @name='jj';
SET @name:='gg';
SELECT @name:='xx';
SELECT @name;
SET @count:=0;
SELECT COUNT(*) INTO @count
FROM employees;
SELECT @count;
#2.局部变量
/*
声明:
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
赋值(set不用@符号)
方式一:
SET 局部变量名=值;或
SET 局部变量名:=值;或
SELECT @局部变量名:=值;
方式二:
SELECT 字段 INTO 局部变量名
FROM 表名;
使用:
SELECT 局部变量名;
*/
#案例:声明两个变量,求和并打印
#用户变量
SET @m=1;
SET @n=2;
SET @sum=@m+@n;
SELECT @sum;
#局部变量
DECLARE m INT DEFAULT 1;
DECLARE n INT DEFAULT 1;
DECLARE SUM INT;
SET SUM=m+n;
SELECT SUM;
/*
variable
1.分类:
系统变量
全局变量
会话变量
自定义变量
用户变量
局部变量
*/
#一、系统变量
/*
1.作用域
全局变量:服务器每次启动将所有全局变量赋值。
针对所有会话连接有效,但不能跨重启,即重启服务器即恢复原初始值,若要实现跨服务器需修改配置文件
会话变量:仅仅针对于当前会话连接有效
2.说明:
变量由系统提供,不是用户定义,属于服务器层面
3.语法:
(GLOBAL|SESSION位置不写时,默认为会话变量)
1.查看所有的系统变量
全局/会话
SHOW GLOBAL/SESSION VARIABLES;
2.查看满足条件的部分系统变量
全局/会话
SHOW GLOBAL/SESSION VARIABLES LIKE '%char%';#查看包含char字符的系统变量
3.查看指定的某个系统变量的值
SELECT @@GLOBAL/SESSION.系统变量名;
4.为某个系统变量赋值
方式一:
SET GLOBAL/SESSION 系统变量名=值;
方式二:
SET @@GLOBAL/SESSION.系统变量名=值;
*/
#演示:
SHOW GLOBAL VARIABLES;
SHOW SESSION VARIABLES;
SHOW GLOBAL VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%';
SELECT @@GLOBAL.autocommit;
SELECT @@tx_isolation;
SET @@GLOBAL.autocommit=0;
SET GLOBAL autocommit=1;
#二、自定义变量
/*
1.使用步骤
a.声明 b.赋值 c.使用(查看、比较、运算)
2.作用域:
用户变量:针对当前对话连接有效,应用在任何地方,也就是begin end里面或外面都可以
局部变量:仅仅定义在它所在的begin end 中有效,只能在begin end第一句话
3.对比
#用户变量和局部变量的对比
作用域 定义位置 语法
用户变量 当前会话 会话的任何地方 加@符号,不用指定类型
局部变量 定义它的BEGIN END中 BEGIN END的第一句话 一般不用加@,需要指定类型
*/
#1.用户变量
/*
赋值的操作符:=或:=
#1.声明并初始化
set @用户变量名=值;或
set @用户变量名:=值;或
select @用户变量名:=值;
#2.赋值
方式一:
set @用户变量名=值;或
set @用户变量名:=值;或
select @用户变量名:=值;
方式二:
Select 字段 into @变量名
from 表名;
#3.使用(查看用户变量的值)
Select @用户变量名;
*/
#案例:
SET @name='jj';
SET @name:='gg';
SELECT @name:='xx';
SELECT @name;
SET @count:=0;
SELECT COUNT(*) INTO @count
FROM employees;
SELECT @count;
#2.局部变量
/*
声明:
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
赋值(set不用@符号)
方式一:
SET 局部变量名=值;或
SET 局部变量名:=值;或
SELECT @局部变量名:=值;
方式二:
SELECT 字段 INTO 局部变量名
FROM 表名;
使用:
SELECT 局部变量名;
*/
#案例:声明两个变量,求和并打印
#用户变量
SET @m=1;
SET @n=2;
SET @sum=@m+@n;
SELECT @sum;
#局部变量
DECLARE m INT DEFAULT 1;
DECLARE n INT DEFAULT 1;
DECLARE SUM INT;
SET SUM=m+n;
SELECT SUM;