欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL詳細(xì)講解變量variables的用法

 更新時(shí)間:2022年06月18日 09:17:27   作者:彭世瑜  
MySQL系統(tǒng)變量(system variables)實(shí)際上是一些系統(tǒng)參數(shù),用于初始化或設(shè)定數(shù)據(jù)庫對(duì)系統(tǒng)資源的占用,文件存放位置等等,本篇文章我們來探究一下variables

變量 variables

MySQL本質(zhì)是一種編程語言

1、系統(tǒng)變量

對(duì)所有用戶客戶端都有效

1.1、查看系統(tǒng)變量

1、方式一

show variables [like 'pattern'];

示例

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+

2、方式二:

使用select查詢變量的數(shù)據(jù)值

select @@變量名;

示例

select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
|            1 |
+--------------+

1.2、修改系統(tǒng)變量

1、局部修改(會(huì)話級(jí)別)

-- 只針對(duì)當(dāng)前客戶端當(dāng)次連接有效
set 變量名 = 值;
-- eg:
set autocommit = 'off';
show variables like 'autocommit';

2、全局修改

-- 所有客戶端,都有效
set global 變量名 = 值;
set @@global.變量名 = 值;
-- eg:
set global autocommit = 'off';

注意,全局修改之后,重啟客戶端生效

2、會(huì)話變量

也稱為用戶變量,設(shè)置的變量,只針對(duì)當(dāng)前用戶使用的客戶端生效

-- 定義用戶變量
set @變量名 = 值;
set @age = 23;

mysql中沒有比較符號(hào) == ,使用的是 =;
為了避免分不清是賦值還是比較,賦值使用:=

set @變量名 := 值;
set @name := 'Tom';

mysql允許將數(shù)據(jù)從表中取出存儲(chǔ)到變量中,只能是一行數(shù)據(jù)

-- 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語句塊之間,在該語句塊里設(shè)置的變量

  • declare語句用于定義局部變量
  • 局部變量 declare語句出現(xiàn)在begin到end語句塊之間

聲明語法

declare 變量名 數(shù)據(jù)類型 [屬性];

4、變量作用域

變量能夠使用的區(qū)域范圍

4.1、局部作用域

declare 關(guān)鍵字聲明 (結(jié)構(gòu)體中使用:函數(shù)/存儲(chǔ)過程/觸發(fā)器)

declare關(guān)鍵字聲明的變量沒有任何符號(hào)修飾,就是普通字符串,如果再外部訪問該變量,系統(tǒng)會(huì)自動(dòng)認(rèn)為是字段

4.2、會(huì)話作用域

用戶定義的,使用@符號(hào)定義的變量,使用set關(guān)鍵字

會(huì)話作用域,當(dāng)次連接有效只要再本連接中,任何地方都可以使用(可以在結(jié)構(gòu)內(nèi)容,也可以跨庫)

會(huì)話變量可以再函數(shù)內(nèi)部使用

set @name = '張三';
create function get_name() returns char(4)
return @name;
select get_name();
+------------+
| get_name() |
+------------+
| 張三       |
+------------+

會(huì)話變量可以跨庫

use mydatabase2;
mysql> select @name;
+--------+
| @name  |
+--------+
| 張三   |
+--------+ 

4.3、全局作用域

所有的客戶端,所有的連接都有效,需要使用全局符號(hào)來定義

set global 變量名 = 值;
set @@global.變量名 = 值;

通常,在sql編程的時(shí)候,不會(huì)使用自定義變量來控制全局,一般定義會(huì)話變量或者結(jié)構(gòu)中使用局部變量來解決問題

到此這篇關(guān)于MySQL詳細(xì)講解變量variables的用法的文章就介紹到這了,更多相關(guān)MySQL variables內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論