#變量
/*
系統變量:
全局變量
會話變量
自定義變量:
用戶變量
局部變量
*/
#一、系統變量
/*說明:變量由系統提供,不是用戶定義,屬於服務器層面
使用的語法:
1、查看所有的系統變量
show global variables;
2、查看滿足條件的部分系統變量
show global|【session】 variables like '%char%';
3、查看指定的某個系統變量的值
select @@global|【session】.系統變量名;
4、爲某個系統變量賦值
方式一
set global|【session】系統變量名 = 值;
方式二
set @@global|【session】.系統變量名=值;
注意:
如果是全局級別,則需要加global,
如果是會話級別,則需要加session,
如果不寫,則默認session;
*/
#二、自定義變量
/*
說明:變量的用戶自定義的,不是系統的
使用步驟
聲明
賦值
使用(查看、比較、運算等)
*/
#1、用戶變量
/*
作用域:針對當前會話(連接)有效,同於會話變量的作用域
應用在任何地方,也就是begin end
*/
#賦值的操作符: =或:=
#①聲明並初始化
SET @用戶變量名=值;或
SET @用戶變量名:=值;或
SELECT @用戶變量名:=值;
#②賦值
#方式一:通過set或select
SET @用戶變量名=值;或
SET @用戶變量名:=值;或
SELECT @用戶變量名:=值;
#方式二:用過select into
SELECT 字段 INTO 變量名
FROM 表;
#③使用
SELECT @用戶變量名;
#案例
#聲明並初始化
SET @name='join';
SET @name=100;
SET @count=1;
#賦值
SELECT COUNT(*) INTO @count
FROM employees;
#查看
SELECT @count;
#2、局部變量
/*
作用域:僅僅在定義他的begin end裏面有效
應用在begin end中的第一句話
*/
#①聲明
DECLARE 變量名 類型;
DECLARE 變量名 類型 DEFAULT 值;
#②複製
#方式一:通過set或select
SET 局部變量名=值;或
SET 局部變量名:=值;或
SELECT 局部變量名:=值;
#方式二:用過select into
SELECT 字段 INTO 局部變量名
FROM 表;
#③使
SELECT @局部變量名;
/*
作用域 定義和使用的位置 語法
用戶變量 當前會話 回話中的任何地方 必須添加@符號,不用限定類型
局部變量 begin end中 只能在begin end中,且爲第一句話 一般不用添加@符號,需要限定類型
*/
#案例
#1、用戶變量
SET @m=1;
SET @n=2;
SET @sum=@n+@m;
SELECT @sum;
#2、局部變量(下面代碼會報錯)
DECLARE m INT DEFAULT 1;
DECLARE n INT DEFAULT 2;
DECLARE SUM INT ;
SET SUM=n+m;
SELECT SUM;