当前位置:网站首页>mysql学习笔记(1)——变量
mysql学习笔记(1)——变量
2022-07-27 16:25:00 【热爱旅行的小李同学】
mysql学习笔记(1)——变量
文章目录
一、变量的分类:
在 mysql中的变量分为 系统变量 和自定义变量。
系统变量分为全局变量和会话变量
自定义变量分为用户变量和局部变量
二、系统变量
全局变量
(1)概念及分类:
系统变量:由系统提供,数据服务器层面。
系统变量分为全局变量和会话变量
(2)常用sql语句:
1.查看所有的系统变量
show global [session] variables;
2.查看满足条件的部分系统变量(模糊查询)
show global [session] variables like ‘%char%’
3.查看指定的某个系统变量的值
select @@global [session].系统变量名
4.为某个系统变量赋值
方式一:
set global [session] 系统变量名 = 值;
方式二:
set @@global [session].系统变量名 = 值;
(3)示范:
-- 查看全局变量
SHOW GLOBAL VARIABLES;

-- 查看部分的全局变量
SHOW GLOBAL VARIABLES LIKE '%char%';

-- 查看指定的全局变量的值
SELECT @@global.autocommit;
SELECT @@tx_isolation; -- 查看事务的隔离级别
-- 为某个指定的全局变量赋值
SET @@global.autocommit = 0; -- 关闭事务自动提交
SELECT @@global.autocommit; -- 0

(4)作用域
服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效,但不能跨服务器。
例如我改变了阿里云服务器的会话的自动提交,设置为了0,但在本地会话中还是自动提交值为1
会话变量
示范
-- 会话变量
SHOW SESSION VARIABLES;
SHOW VARIABLES;

可以看到比系统全局变量多了十来个
-- 查看部分会话变量
SHOW SESSION VARIABLES LIKE '%char%';

-- 查看指定的会话变量
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;

-- 为某个会话变量赋值
-- 方式一:
SET @@session.tx_isolation='read-uncommitted';
-- 方式二:
SET SESSION tx_isolation='read-committed';
-- 改回来(可重复读)
SET SESSION tx_isolation='repeatable-read';
三、自定义变量
概念:
自定义变量:
说明:变量是用户自定义的
使用:声明变量 赋值 使用(查看、比较、运算等)
用户变量
(1) 作用域
用户变量:
作用域:针对于当前会话(连接)有效,同于会话变量的作用域
(2)使用步骤
声明并初始化:
赋值的操作符: = 或 :=(推荐使用)
set @用户变量名=值;或
set @用户变量名:=值,或
select @用户变量名:=值
赋值:
方式一:通过set或select
set @用户变量名=值;或
set @用户变量名:=值,或
select @用户变量名:=值
方式二:通过select into
select 字段 into @用户变量名 from 表;
3.查看用户变量的值
select @用户变量名;
(3)示范
-- 案例
-- 方式一
SET @name='jack';
SELECT @name;

-- 方式二
SELECT @count:=0;
SELECT COUNT(*) INTO @count FROM stu;
SELECT @count;

局部变量
(1)作用域
仅仅在定义它的begin end中有效(第一句话)
(2)使用
– 声明:
declare 变量名 类型;
declare 变量名 类型 default 值;
– 赋值(和用户变量相似)
方式一:通过set或select
set 局部变量名=值;或
set 局部变量名:=值,或
select @局部变量名:=值
方式二:通过select into
select 字段 into 局部变量名 from 表;
查看
select 局部变量名;
(2)示范
-- 用户变量
SET @a=1;
SET @b=2;
SET @sum= @a + @b;
SELECT @sum;

对比用户变量和局部变量
| Column 1 | 作用域 | 定义和使用的位置 | 语法 |
|---|---|---|---|
| 用户变量 | 当前会话 | 会话中的任何位置 | 必须加上’@'符号。不需要限定类型 |
| 局部变量 | begin end中 | 只能在begin end中,且为第一句话 | 一般不用加’@'符号,需要限定类型 |
使用局部变量测试:
-- 2.局部变量(不支持以下操作,因为局部变量作用域为begin end中)
DECLARE a INT DEFAULT 1;
DECLARE b INT DEFAULT 2;
DECLARE SUM INT;
SET SUM = a + b;
SELECT SUM;
报错了,说明局部变量作用域有限
边栏推荐
- Dynamic proxy
- express
- JMeter interface automation - how to solve the content type conflict of request headers
- 阿里云对象存储OSS的开通和使用
- express
- v-if,v-else,v-for
- Self control principle learning notes - system stability analysis (2) - loop analysis and Nyquist bode criterion
- PHP字符串操作
- WinForm remove the close button in the upper right corner
- MySQL 03 高级查询(一)
猜你喜欢

Redis annotation

Product recommendation and classified product recommendation

自控原理学习笔记-系统稳定性分析(1)-BIBO稳定及Routh判据

Selenium自动化测试面试题全家桶

Led learning eye protection table lamp touch chip-dlt8t10s-jericho

`this.$ Emit ` the child component passes multiple parameters to the parent component

MongoDB学习笔记(1)——安装MongoDB及其相关配置

v-if,v-else,v-for

连续时间系统的性能分析(1)-控制系统性能指标及一二阶分析

一篇让你掌握线程和线程池,还解决了线程安全问题,确定不看看?
随机推荐
Code interview of Amazon
【云图说】 第250期 初识华为云微服务引擎CSE
Unity学习笔记——物体移动六种常见函数
WinForm remove the close button in the upper right corner
MySQL 04 advanced query (II)
NPM, cnpm Taobao image
Unity shows Kinect captured shots
Unity learning notes - six common functions of object movement
一个经验
Extension of ES6 value
What if idea successfully connects to the database without displaying the table
Kinect for Unity3D——BackgroundRemovalDemo学习
Ruiji takeout SQL table
Code interview of Amazon
Extension of regular expression
Household mute mosquito repellent lamp chip-dltap703sd-jericho
WPS turns off annoying advertisements
Nacos集群部署-高可用保证
【微信小程序】项目实战—抽签应用
Self control principle learning notes - system stability analysis (1) - BIBO stability and Routh criterion