MySQL變數的定義與賦值

2021-09-06 20:41:20 字數 1873 閱讀 9413

mysql儲存過程中,定義變數有兩種方式:

1.使用set或select直接賦值,變數名以 @ 開頭.

例如:set @var=1;

可以在乙個會話的任何地方宣告,作用域是整個會話,稱為會話變數。

2.以 declare 關鍵字宣告的變數,只能在儲存過程中使用,稱為儲存過程變數,例如:

declare var1  int default 0;  

主要用在儲存過程中,或者是給儲存傳引數中。

兩者的區別是:

在呼叫儲存過程時,以declare宣告的變數都會被初始化為 null。而會話變數(即@開頭的變數)則不會被再初始化,在乙個會話內,只須初始化一次,之後在會話內都是對上一次計算的結果,就相當於在是這個會話內的全域性變數。

在儲存過程中,使用動態語句,預處理時,動態內容必須賦給乙個會話變數。

例:set @v_sql= sqltext;

prepare stmt from @v_sql;  

execute stmt;     

deallocate prepare stmt;

變數可以在子程式(函式、儲存過程、匿名塊)中宣告並使用,這些變數的作用範圍是在begin...end程式中。

declare var_name [

, var_name

]... data_type [

default value

];

var_name為區域性變數的名稱;

default value子句指定指定變數的預設值,value除了可以被宣告為乙個常量外,還可以被指定為乙個表示式。如果沒有default子句,變數的初始值為null。

declare myparam int

default

100;

定義變數以後,為變數賦值可以改變變數的預設值。mysql中使用set語句為變數賦值。

在儲存程式中的set語句是一般set語句的擴充套件版本。被參考變數可能是子程式內宣告的變數,或者是全域性伺服器變數,如系統變數或者使用者變數。

set var_name=expr [

, var_name=expr

]...;

宣告3個變數,分別為var1, var2和var3,資料型別為int,使用set為變數賦值

declare var1, var2, var3 int

; set var1=

10, var2=

20;

set var3=var1+var2;

select into語法把選定的列直接儲存到對應位置的變數。

mysql中還可以通過select...into為乙個或者多個變數賦值,語法如下:

select

col_name

[,...

]into var_name[

,...

] table_expr [

where...

];

宣告變數v_employee_name和v_employee_salary,通過select...into語句查詢指定記錄並為變數賦值:

declare v_employee_name varchar(100

);

declare v_employee_salary decimal(8,4

);

select

employee_name, employee_salary

into

v_employee_name, v_employee_salary

from

employees

where employee_id=

1;

shell 變數定義 變數賦值

在 shell 中,當第一次使用某變數名時,實際上就定義了這個變數。建立和設定變數的語法 varname varvalue如果沒有給出變數值,則變數會被賦予乙個空字串。注意,在賦值操作符 的周圍不要有任何空格,像下面這三種寫法會報錯 varname varvalue varname varvalue...

MySql 儲存過程 變數的定義和賦值

mysql 5.0 版本開始支援儲存過程。儲存過程 stored procedure 是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件。儲存過程是為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數 需要時 來呼叫執行。declare v...

mysql變數賦值

mysql中變數不用事前申明,在用的時候直接用 變數名 使用就可以了。第一種用法 set num 1 或set num 1 這裡要使用變數來儲存資料,直接使用 num變數 第二種用法 select num 1 或 select num 欄位名 from 表名 where 注意上面兩種賦值符號,使用s...