mysql中 變數 MYSQL中的變數 MySQL

2021-10-17 19:32:22 字數 1743 閱讀 7708

bitscn.com

只記很基礎的知識, 細節東西太麻煩了,而且我也用不到。

變數分為使用者變數與系統變數。

使用者變數:

使用者變數與資料庫連線有關,在這個連線中宣告的變數,在連線斷開的時候,就會消失。

在此連線中宣告的變數無法在另一連線中使用。

使用者變數的變數名的形式為@varname的形式。

名字必須以@開頭。

宣告變數的時候需要使用set語句,比如下面的語句宣告了乙個名為@a的變數。

set @a = 1;

宣告乙個名為@a的變數,並將它賦值為1,mysql裡面的變數是不嚴格限制資料型別的,它的資料型別根據你賦給它的值而隨時變化 。

(sql server中使用declare語句宣告變數,且嚴格限制資料型別。)

我們還可以使用select 語句為變數賦值 。

比如:set @name = ;

select @name:=password from user limit 0,1;

(注意等於號前面有乙個冒號,後面的limit 0,1是用來限制返回結果的,相當於sql server裡面的top 1)

如果直接寫:

select @name:=password from user;

如果這個查詢返回多個值的話,那@name變數的值就是最後一條記錄的password欄位的值 。

系統變數:

系統變數又分為全域性變數與會話變數。

全域性變數在mysql啟動的時候由伺服器自動將它們初始化為預設值,這些預設值可以通過更改my.ini這個檔案來更改。

會話變數在每次建立乙個新的連線的時候,由mysql來初始化。mysql會將當前所有全域性變數的值複製乙份。來做為會話變數。

(也就是說,如果在建立會話以後,沒有手動更改過會話變數與全域性變數的值,那所有這些變數的值都是一樣的。)

全域性變數與會話變數的區別就在於,對全域性變數的修改會影響到整個伺服器,但是對會話變數的修改,只會影響到當前的會話

(也就是當前的資料庫連線)。

我們可以利用

show session variables;

語句將所有的會話變數輸出:

(可以簡寫為show variables,沒有指定是輸出全域性變數還是會話變數的話,預設就輸出會話變數。)

mysql> show global variables;

| variable_name | value |

| auto_increment_increment | 1 |

| auto_increment_offset | 1 |

| automatic_sp_privileges | on |

..................................省略..............................

| tmpdir | c:windowstemp |

| transaction_alloc_block_size | 8192 |

| transaction_prealloc_size | 4096 |

| tx_isolation | repeatable-read |

| updatable_views_with_limit | yes |

| version | 5.0.67-community-nt |

| version_comment | mysql community edition (gpl) |

| version_compile_machine | ia32 &nbitscn.com

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...

mysql 生明變數 mysql中變數的使用

4.4.1 區域性變數 區域性變數是使用者可自定義的變數,它的作用範圍僅在程式內部。在程式中通常用來儲存從表中查詢到的資料,或當作程式執行過程中暫存變數使用。區域性變數必須以 開頭,而且必須先用declare命令說明後才可使用。其說明形式如下 declare 變數名 變數型別 變數名 變數型別 其中...

mysql 中變數的使用

本文主要是介紹mysql中變數的使用,包括使用者變數,全域性,會話還有區域性變數。本文內容主要參考自mysql使用者手冊和相關鏈結。1.使用者變數 本次連線有效 定義方式 set 變數名 值 或 set 變數名 值 或 select 中 變數名 值 例子 set a 5 或 set a 3 或 se...