MySQL笔记 19:变量

it2023-01-22  54

1. 分类

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

2. 系统变量


2.1 说明

变量是由系统提供,不是用户定义,属于服务器层面

2.2 语法

查看所有的系统变量

-- 全局变量 SHOW GLOBAL VARIABLES ; -- 会话变量(session可以省略) SHOW SESSION VARIABLES ;

查看满足条件的部分系统变量

SHOW GLOBAL VARIABLES LIKE '%char%' ;

查看指定的某个系统变量

SELECT @@global.character_set_server ;

为某个具体的系统变量赋值

SET GLOBAL autocommit = 0 ; SET @@global.autocommit = 0 ;

总结

全局变量需要加global关键字,不加关键字默认为会话变量。服务器每次启动将会为所有的全局变量赋初始值,修改的值对所有的连接都有效,但是不能跨重启。会话变量仅针对于当前会话有效

3. 自定义变量


3.1 说明

变量是用户自定义,不由系统给出

3.2 用户变量

作用域 针对于当前会话有效,同于会话变量的作用域,应用于任何位置都可以,无需定义类型声明并初始化(更新) SET @dudu1 = 567 ; SET @dudu2 := 678 ; SELECT @dudu3 := 789 ; SELECT COUNT(*) INTO @num FROM `employees` ; 查看 SELECT @num ;

3.3 局部变量

作用域 仅仅在定义的begin end中有效,应用在begin end中并且必须是第一条语句,需要声明类型声明 DECLARE dudu INT ; DECLARE dudu INT DEFAULT 123 ; 赋值 SET dudu1 = 567 ; SET dudu2 := 678 ; SELECT @dudu3 := 789 ; SELECT COUNT(*) INTO num FROM `employees` ; 使用 SELECT num ;

案例:声明两个变量并赋值,求和

用户变量 SET @dudu := 1 ; SET @zhou := 2 ; SET @sum := @dudu + @zhou ; SELECT @sum ; 局部变量 DECLARE dudu INT 1 ; DECLARE zhou INT 2 ; DECLARE `sum` ; SET `sum` = dudu + zhou ; SELECT `sum` ;
最新回复(0)