mysql中的变量知识点

mysql中的变量知识点

直接po代码

#变量
/*
系统变量:
	全局变量
	会话变量

自定义变量:
	用户变量
	局部变量

*/
#一、系统变量
/*
说明:变量由系统定义,不是用户定义,属于服务器层面
注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别
使用步骤:
1、查看所有系统变量
show global|【session】variables;
2、查看满足条件的部分系统变量
show global|【session】 variables like '%char%';
3、查看指定的系统变量的值
select @@global|【session】.系统变量名;
4、为某个系统变量赋值
方式一:
set global|【session】系统变量名=值;
方式二:
set @@global|【session】.系统变量名=值;

*/
#1》全局变量
/*
作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有会话(连接)有效,但不能跨重启(
我们去修改全局变量的值后,mysql服务一旦重启,修改的全局变量的值又会被还原成服务器默认的初始值)
*/
#查看所有会话变量
SHOW SESSION VARIABLES;
#默认为会话(SESSION)变量
SHOW VARIABLES;
#查看满足条件的部分会话变量
SHOW SESSION VARIABLES LIKE '%autocommit%';
#查看满足条件的部分会话变量
SHOW VARIABLES LIKE '%autocommit%';

#查看指定的系统变量的值
SELECT @@session.autocommit;

#查看指定的系统变量的值(默认是会话级别)
SELECT @@autocommit;

#
SELECT @@global.autocommit;
SELECT @@session.autocommit


#查看所有全局变量
SHOW GLOBAL VARIABLES;
#查看满足条件的部分系统变量
SHOW GLOBAL VARIABLES LIKE '%char%';
#查看指定的系统变量的值
SELECT @@global.autocommit;
SELECT @@session.autocommit;
SELECT @@autocommit;
#
SELECT @@global.tx_isolation;
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;

#为某个系统变量赋值
SET @@global.autocommit=0;
SET GLOBAL autocommit=0;

#
SET @@session.autocommit=0;
SET @@autocommit=0;
SET SESSION autocommit =0;
SET autocommit =0;


#2》会话变量
/*
作用域:针对于当前会话(连接)有效
*/

#1.查看所有的会话变量
SHOW SESSION VARIABLES;
#省略SESSION关键字
SHOW VARIABLES;

#查看部分的会话变量
SHOW SESSION VARIABLES LIKE '%autocommit%';
SHOW SESSION VARIABLES LIKE '%char%';
SHOW VARIABLES LIKE '%autocommit%';
SHOW VARIABLES LIKE '%char%';

#查看指定的某个会话变量
SELECT @@autocommit;
SELECT @@session.autocommit;
SELECT @@tx_isolation;
SELECT @@session.tx_isolation;

#为某个会话变量赋值
#方式1
SET @@session.autocommit = 0;
#省略session关键字
SET @@autocommit = 0;

#方式2
SET SESSION autocommit = 0;
#省略SESSION关键字
SET autocommit = 0;

#
SET SESSION tx_isolation = 'read-uncommitted';
SET tx_isolation = 'read-committed';


#二、自定义变量
/*
说明:变量由用户自定义,而不是系统提供的
使用步骤:
1、声明
2、赋值
3、使用(查看、比较、运算等)
*/

#1》用户变量
/*
作用域:针对于当前会话(连接)有效,作用域同于会话变量
应用在任何地方,也就是begin end里面或begin end外面
*/

#注意:用户变量要求声明时必须初始化

#赋值操作符有 =和:=这2种
#1.声明并初始化(3种方式)
#注意:如果是使用set方式赋值的话,支持=和:=这2种赋值操作符
#方式1
SET @变量名=值;

#方式2
SET @变量名:=值;

#注意:如果是使用SELECT方式赋值的话,那就只支持:=这种赋值操作符
#方式3
SELECT @变量名:=值;


#2.赋值(更新变量的值)
#方式一:
	SET @变量名=值;
	SET @变量名:=值;
	SELECT @变量名:=值;
#方式二:
	SELECT 字段 INTO @变量名
	FROM 表;
#3.使用(查看变量的值)
SELECT @变量名;

#案例
#声明并初始化(初始化时对数据类型没有要求)
SET @myTest = 'tom';
#赋值(赋值时对数据类型没有要求)
SET @myTest = 888;
#查看/使用
SELECT @myTest;
SELECT @myTest < 2;


#声明并初始化
SET @count=666;

#赋值
SELECT COUNT(*) INTO @count FROM employees;

#查看变量/使用变量
SELECT @count;
SELECT CONCAT('总共有员工', @count, '人');


#声明并初始化
SET @max_salary := 1800;
#赋值
SELECT MAX(salary) INTO @max_salary FROM employees;
#使用
SELECT @max_salary, CONCAT('企业最高薪水为', @max_salary, '元') AS 最高薪水;

#
SET @employee_id := 105;
SELECT * FROM employees WHERE employee_id = @employee_id;

#案例,用户变量
SET @num1 = 20;
SET @num2 = 30;
SET @sum = @num1 + @num2;
SELECT @sum;
#
SET @num1 := 30;
SET @num2 := 90;
SET @sum := @num1 + @num2;
SELECT @sum;
#
SELECT @num1 := 50;
SELECT @num2 := 15;
SELECT @sum := @num2 + @num1;
SELECT @sum;


#

#2》局部变量
/*
作用域:仅仅在定义它的begin end块中有效
应用在 begin end中的第一句话
*/

#1.声明(要求指定数据类型,可以只声明,不初始化)
DECLARE 变量名 类型;
DECLARE 变量名 类型 【DEFAULT 值】;


#2.赋值(更新变量的值)

#方式一:
	SET 局部变量名=值;或
	SET 局部变量名:=值;或
	SELECT @局部变量名:=值;
#方式二:
	SELECT 字段 INTO 局部变量名
	FROM 表;
#3.使用(查看变量的值)
SELECT 局部变量名;

	作用域			定义位置		             语法
用户变量	当前会话		       会话的任何地方		加@符号,不用指定类型
局部变量	定义它的BEGIN END中  BEGIN END的第一句话	      一般不用加@,需要指定类型


#案例:声明两个变量,求和并打印
#用户变量
SET @m = 5;
SET @n = 8;
SET @sum = @m + @n;
SELECT @sum;


#案例,局部变量
/*
declare myNum1 int default 60;
DECLARE myNum2 INT DEFAULT 15;
declare mySum double;
set mySum = myNum1 + myNum2;
select mySum;
*/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值