在Mysql中,常常需要聲明、初始化和賦值變量,以便在存儲(chǔ)過程、觸發(fā)器和函數(shù)中使用。Mysql支持用戶自定義和系統(tǒng)自帶的變量類型,包括整數(shù)、浮點(diǎn)數(shù)、字符串和日期時(shí)間等。
聲明和初賦值變量有如下格式:
DECLARE variable_name datatype [DEFAULT value]
其中,variable_name是變量名,datatype是數(shù)據(jù)類型,DEFAULT用于設(shè)置默認(rèn)初值。
例如,聲明和初賦值整型變量book_num的代碼如下:
DECLARE book_num INT DEFAULT 0;
而日期時(shí)間類型變量可用如下代碼進(jìn)行聲明和初賦值:
DECLARE today DATE DEFAULT '2021-05-28';
對(duì)于Mysql中變量的賦值,可以直接使用賦值運(yùn)算符=,例如:
SET book_num = 10;
也可以用SELECT語句將查詢結(jié)果賦值給變量,例如:
SELECT COUNT(*) INTO book_num FROM books;
以上語句將books表中書的數(shù)量賦值給了變量book_num。
不同類型的變量在賦值時(shí)也有不同的寫法,比如對(duì)字符串變量word進(jìn)行賦值,需要用單引號(hào)把字符串括起來,例如:
DECLARE word VARCHAR(10) DEFAULT 'hello'; SET word = 'world';在使用變量時(shí),需要用@符號(hào)來標(biāo)識(shí)變量名,例如:
SELECT * FROM books WHERE book_id=@book_num;
注意,Mysql中的變量作用域默認(rèn)是會(huì)話級(jí)別的,如果需要在不同的存儲(chǔ)過程或會(huì)話之間共享變量,需要使用系統(tǒng)變量等其他方法進(jìn)行實(shí)現(xiàn)。