MySQL詳細講解變量variables的用法
變量 variables
MySQL本質是一種編程語言
1、系統(tǒng)變量
對所有用戶客戶端都有效
1.1、查看系統(tǒng)變量
1、方式一
show variables [like 'pattern'];
示例
mysql> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | autocommit | ON | +---------------+-------+
2、方式二:
使用select查詢變量的數據值
select @@變量名;
示例
select @@autocommit; +--------------+ | @@autocommit | +--------------+ | 1 | +--------------+
1.2、修改系統(tǒng)變量
1、局部修改(會話級別)
-- 只針對當前客戶端當次連接有效 set 變量名 = 值; -- eg: set autocommit = 'off'; show variables like 'autocommit';
2、全局修改
-- 所有客戶端,都有效 set global 變量名 = 值; set @@global.變量名 = 值; -- eg: set global autocommit = 'off';
注意,全局修改之后,重啟客戶端生效
2、會話變量
也稱為用戶變量,設置的變量,只針對當前用戶使用的客戶端生效
-- 定義用戶變量 set @變量名 = 值; set @age = 23;
mysql中沒有比較符號 == ,使用的是 =;
為了避免分不清是賦值還是比較,賦值使用:=
set @變量名 := 值; set @name := 'Tom';
mysql允許將數據從表中取出存儲到變量中,只能是一行數據
-- 1、賦值且查看賦值過程 select @變量1 := 字段1, @變量2 := 字段2 from 表 where 條件 select @name := name, @age := age from my_student limit 1; +---------------+-------------+ | @name := name | @age := age | +---------------+-------------+ | 劉備 | 18 | +---------------+-------------+ --- 2、只賦值不看過程 select 字段1, 字段2 from 表 where 條件 into @變量1, @變量2; select name, age from my_student limit 1 into @name, @age;
查看變量
select @變量名 mysql> select @name, @age; +--------+------+ | @name | @age | +--------+------+ | 劉備 | 18 | +--------+------+
3、局部變量
作用范圍在begin到end語句塊之間,在該語句塊里設置的變量
- declare語句用于定義局部變量
- 局部變量 declare語句出現(xiàn)在begin到end語句塊之間
聲明語法
declare 變量名 數據類型 [屬性];
4、變量作用域
變量能夠使用的區(qū)域范圍
4.1、局部作用域
declare 關鍵字聲明 (結構體中使用:函數/存儲過程/觸發(fā)器)
declare關鍵字聲明的變量沒有任何符號修飾,就是普通字符串,如果再外部訪問該變量,系統(tǒng)會自動認為是字段
4.2、會話作用域
用戶定義的,使用@符號定義的變量,使用set關鍵字
會話作用域,當次連接有效只要再本連接中,任何地方都可以使用(可以在結構內容,也可以跨庫)
會話變量可以再函數內部使用
set @name = '張三'; create function get_name() returns char(4) return @name; select get_name(); +------------+ | get_name() | +------------+ | 張三 | +------------+
會話變量可以跨庫
use mydatabase2; mysql> select @name; +--------+ | @name | +--------+ | 張三 | +--------+
4.3、全局作用域
所有的客戶端,所有的連接都有效,需要使用全局符號來定義
set global 變量名 = 值; set @@global.變量名 = 值;
通常,在sql編程的時候,不會使用自定義變量來控制全局,一般定義會話變量或者結構中使用局部變量來解決問題
到此這篇關于MySQL詳細講解變量variables的用法的文章就介紹到這了,更多相關MySQL variables內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL在關聯(lián)復雜情況下所能做出的一些優(yōu)化
這篇文章主要介紹了MySQL在關聯(lián)復雜情況下所能做出的一些優(yōu)化,作者通過添加索引來不斷優(yōu)化查詢時間,需要的朋友可以參考下2015-05-05mysql數據庫常見基本操作實例分析【創(chuàng)建、查看、修改及刪除數據庫】
這篇文章主要介紹了mysql數據庫常見基本操作,結合實例形式分析了mysql創(chuàng)建、查看、修改及刪除數據庫實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-04-04詳解騰訊云CentOS7.0使用yum安裝mysql及使用遇到的問題
本篇文章主要介紹了騰訊云CentOS7.0使用yum安裝mysql,詳細的介紹了使用yum安裝mysql及使用遇到的問題,有興趣的可以了解一下。2017-01-01