SQL中的变量

本文深入探讨了SQL中如何使用变量,包括声明、赋值和在查询中的应用,帮助读者理解这一重要的数据库编程概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

补坑+2
在这里插入图片描述

#变量
/*
系统变量:
	全局变量
	会话变量
自定义变量:
	用户变量
	局部变量
*/
-- ----------------------------------------------------------------------****************
#一、系统变量
/*
分类:
	全局变量:服务器每次启动将为所有的全局变量赋初始值,针对所有会话(连接)有效,但是不能跨重启
	会话变量:仅针对当前的会话有效
说明:由系统提供,非用户定义,属于服务器层面
使用方法:
	1、查看所有系统变量
	   show global |【session】 variables;
	2、查看满足条件的部分系统变量
	   show global |【session】 variablea like '%xx%';
	3、查看指定的某个系统变量的值
	   select @@global |【session】.系统变量名;
	4、为某个系统变量赋值
	   方式一:set global |【session】 系统变量名 = 值;
	   方式二:set @@global |【session】.系统变量名 = 值;
	   
注意:全局变量(global)和会话变量(session)只是关键字不同,不写默认为是会话变量	   
*/

-- ---------------演示系统变量-------------------------------
#1、全局变量
-- **--查看所有全局变量------
SHOW GLOBAL VARIABLES;
-- **--查看部分全局变量------
SHOW GLOBAL VARIABLES LIKE '%char%';
-- **--查看指定的某个系统变量的值------
SELECT @@global.autocommit;  #查看自动提交功能
SELECT @@global.tx_isolation;  #查看隔离级别
-- **--为某个系统变量赋值------
SET GLOBAL autocommit = 0;
SET @@global.autocommit = 1;
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#2、会话变量
-- **--查看所有全局变量------
SHOW VARIABLES;
SHOW SESSION VARIABLES;
-- **--查看部分全局变量------
SHOW VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%';
-- **--查看指定的某个系统变量的值------
SELECT @@autocommit;  #查看自动提交功能
SELECT @@session.autocommit;
SELECT @@tx_isolation;  #查看隔离级别
SELECT @@session.tx_isolation; 
-- **--为某个系统变量赋值------
SET autocommit = 0;
SET SESSION autocommit = 0;
SET @@autocommit = 1;
SET @@session.autocommit = 1;

-- ----------------------------------------------------------------------****************
#二、自定义变量
/*
说明:变量是用户自定义的,不是由系统提供的
使用步骤:
	声明
	赋值
	使用(查看、比较、运算符)
分类:
	用户变量:作用域相当于会话变量,只对当前会话或(连接)有效,可以用在任何地方
	局部变量:作用域仅在局部有效(在定义它的begin end中有效)
		  应用在begin end中,只能是begin end的第一句话
用户变量和局部变量对比:
		作用域		定义和使用的地方		语法
用户变量	当前会话	   会话中任何地方		必须加@,不限定类型
局部变量	begin end中	   begin end中第一句话		一般不加@(select赋值除外),限定类型
*/
-- --------------------------------------------------------------------------
#1、用户变量
-- * step1 *--声明并初始化---------3个方法
SET @用户变量名=;
SET @用户变量名:=;
SELECT @用户变量名:=;
-- * step2 *--用户变量赋值---------2个方式
方式一: SELECTSET
	SET @用户变量名=;
	SET @用户变量名:=;
	SELECT @用户变量名:=;
方式二: SELECT INTO
	SELECT 字段 INTO @用户变量名 FROM 表名;
-- * step3 *--使用(查看用户变量的值)-----
SELECT @用户变量名;

-- --------------------------------------------------------------------------
#2、局部变量
-- * step1 *--声明-----------------
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT;  #赋初始值
-- * step2 *--局部变量赋值---------2个方式
方式一: SELECTSET
	SET 局部变量名=;
	SET 局部变量名:=;
	SELECT @局部变量名:=;
方式二: SELECT INTO
	SELECT 字段 INTO 局部变量名 FROM 表名;
-- * step3 *--使用(查看局部变量的值)-----
SELECT 局部变量名;

-- -----------------------------------------------------
#案例、声明两个变量并赋值,求和,打印
#1、用户变量实现
SET @c1:=20;
SET @c2:=12;
SET @sum:=@c1+@c2;
SELECT @sum;

#2、局部变量不能实现(必须放在begin end第一句话)
DECLARE m1 INT DEFAULT 20;
DECLARE m2 INT DEFAULT 12;
DECLARE SUM INT;
SET SUM:=m1+m2;
SELECT SUM;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值