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

MySQL詳細講解變量variables的用法

 更新時間:2022年06月18日 09:17:27   作者:彭世瑜  
MySQL系統(tǒng)變量(system variables)實際上是一些系統(tǒng)參數,用于初始化或設定數據庫對系統(tǒng)資源的占用,文件存放位置等等,本篇文章我們來探究一下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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論