mysql中 變數 mysql中的變數

2021-10-18 21:48:49 字數 1630 閱讀 7900

[toc]

# 變數

mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。

## 系統變數

系統內部定義的變數,系統變數針對所有使用者(mysql客戶端)有效。

檢視系統所有變數:show variables [like 『pattern』];

mysql允許使用者使用select查詢變數的資料值(系統變數)

基本語法:select @@變數名;

修改系統變數:分為兩種修改方式

1、區域性修改(會話級別):只針對當前自己客戶端當次連線有效

基本語法:set 變數名 = 新值;

2、全域性修改:針對所有的客戶端,「所有時刻」都有效

基本語法:set global 變數名 = 值; || set @@global.變數名 = 值;

全域性修改之後:所有連線的客戶端並沒發現改變?全域性修改只針對新客戶端生效(正在連著的無效)

注意:如果想要本次連線對應的變數修改有效,那麼不能使用全域性修改,只能使用會話級別修改(set 變數名 = 值);

# 普通變數

不帶@符號

定義:declare 變數名 型別名 [default 預設值]; //普通變數必須先這樣定義

賦值形式:set 變數名=值; 取值:就直接使用變數名;

只能在程式設計環境中使用:1.定義函式內部2.定義儲存過程的內部3.定義觸發器的內部;

作用範圍在begin到end語句塊之間。在該語句塊裡設定的變數,declare語句專門用於定義區域性變數。

1、區域性變數是使用declare關鍵字宣告

2、區域性變數declare語句出現的位置一定是在begin和end之間(beginend是在大型語句塊中使用:函式/儲存過程/觸發器)

3、宣告語法:declare 變數名 資料型別 [屬性];

# 會話變數

帶@符號

定義形式(其實也是賦值形式):set @變數名=值; 取值:就基本使用變數名

使用場所,**都可以

在mysql中因為沒有比較符號==,所以是用=代替比較符號:有時候在賦值的時候,會報錯:mysql為了避免系統分不清是賦值還是比較:特定增加乙個變數的賦值符號: :=

set @變數名 := 值;

mysql是專門儲存資料的:允許將資料從表中取出儲存到變數中:查詢得到的資料必須只能是一行資料(乙個變數對應乙個字段值):mysql沒有陣列。

1、賦值且檢視賦值過程:select @變數1 := 欄位1,@變數2 := 欄位2 from 資料表 where 條件;

!(2、只賦值,不看過程:select 欄位1,欄位2… from 資料來源 where條件 into @變數1,@變數2…

!(# 變數賦值有如下形式

1.(針對普通變數): set 變數名=表示式; #此語法中的變數必須先使用declare宣告

2.(針對會話變數): set @變數名=表示式; #此方式可以無需declare語法宣告,而是直接賦值

3.(針對會話變數): select @變數名 := 表示式; #此語句會給該變數賦值,同時會作為乙個select語句輸出結果集

4.(針對會話變數): select 表示式 into @變數名; #此語句雖然看起來是select語句,但其實並不輸出結果集,而只是給變數賦值

mysql中 變數 MYSQL中的變數 MySQL

bitscn.com 只記很基礎的知識,細節東西太麻煩了,而且我也用不到。變數分為使用者變數與系統變數。使用者變數 使用者變數與資料庫連線有關,在這個連線中宣告的變數,在連線斷開的時候,就會消失。在此連線中宣告的變數無法在另一連線中使用。使用者變數的變數名的形式為 varname的形式。名字必須以 ...

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

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

mysql 中變數的使用

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