国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第62講:MySQL存儲(chǔ)過(guò)程中變量的定義及應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了第62講:MySQL存儲(chǔ)過(guò)程中變量的定義及應(yīng)用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在MySQL數(shù)據(jù)庫(kù)種分為三種類型的變量,分別是系統(tǒng)變量、用戶自定義的變量、局部變量。

1.系統(tǒng)變量

系統(tǒng)變量是由MySQL數(shù)據(jù)庫(kù)提供的系統(tǒng)變量,屬于服務(wù)層面的系統(tǒng)變量,系統(tǒng)變量在使用時(shí)的級(jí)別又分為兩種:

  • 全局變量(global):全局變量針對(duì)所有的會(huì)話生效,但是當(dāng)重啟MySQL后,修改的系統(tǒng)變量值將會(huì)失效,若想永久修改變量的值,可以在MySQL的配置文件中聲明。

  • 局部變量(session):會(huì)話變量只針對(duì)與單個(gè)會(huì)話生效,到另一個(gè)會(huì)話窗口將失效。

系統(tǒng)變量的兩種使用級(jí)別可以在使用變量時(shí)指定使用哪一個(gè)級(jí)別,如果不明確指定系統(tǒng)變量的級(jí)別,默認(rèn)是session。

1.1.查看系統(tǒng)變量的語(yǔ)法格式

1)查看所有的系統(tǒng)變量

SHOW [ SESSION | GLOBAL ] VARIABLES 

2)查找某一個(gè)系統(tǒng)變量

SHOW [ SESSION | GLOBAL ] VARIABLES LIKE '變量名'

3)查看指定變量的值

SELECT @@[SESSION | GLOBAL].變量名

1.2.設(shè)置系統(tǒng)變量值的語(yǔ)法格式

兩種方式可以設(shè)置變量的值。

SET [ SESSION | GLOBAL ] 系統(tǒng)變量名 =SET @@[SESSION | GLOBAL].系統(tǒng)變量名 =

1.3.系統(tǒng)變量使用案例

1)查看所有的系統(tǒng)變量

mysql> show variables;

2)查看名稱包含auto的系統(tǒng)變量

左側(cè)是變量名,右側(cè)是變量值。

mysql> show variables like '%auto%';
+----------------------------------------------+-------+
| Variable_name                                | Value |
+----------------------------------------------+-------+
| auto_generate_certs                          | ON    |
| auto_increment_increment                     | 1     |
| auto_increment_offset                        | 1     |
| autocommit                                   | ON    |
| automatic_sp_privileges                      | ON    |
| caching_sha2_password_auto_generate_rsa_keys | ON    |
| innodb_autoextend_increment                  | 64    |
| innodb_autoinc_lock_mode                     | 2     |
| innodb_stats_auto_recalc                     | ON    |
| sha256_password_auto_generate_rsa_keys       | ON    |
| sql_auto_is_null                             | OFF   |
+----------------------------------------------+-------+
11 rows in set (0.00 sec)

3)查看指定變量的變量值

mysql> select @@session.autocommit;
+----------------------+
| @@session.autocommit |
+----------------------+
|                    1 |
+----------------------+
1 row in set (0.00 sec)

4)修改系統(tǒng)變量的值

mysql> set @@session.autocommit = 0;
Query OK, 0 rows affected (0.02 sec)

或者

mysql> set session autocommit = 0;
Query OK, 0 rows affected (0.00 sec)

2.用戶自定義的變量

在MySQL數(shù)據(jù)庫(kù)中,還支持用戶根據(jù)自己的需要,自定義的環(huán)境變量,用戶自定義的變量不需要提前聲明,直接賦值使用即可,用戶自定義的變量?jī)H應(yīng)用于當(dāng)前的會(huì)話連接。

用戶自定義的變量是不需要聲明或者初始化的,如果沒有賦值直接使用自定義的變量名,變量值則為NULL。

2.1.用戶自定義變量的語(yǔ)法格式

1)定義變量并賦值

方式一,使用SET直接定義變量并賦值。

SET @變量名1 = 變量值1
SET @變量名1 = 變量值1 , @變量名2 = 變量值2

SET @變量名1 := 變量值1 
SET @變量名1 := 變量值1 , @變量名2 := 變量值2 

建議使用:=的方式為變量賦值,因?yàn)樵谧兞窟\(yùn)算時(shí)=符號(hào)也是運(yùn)算符號(hào)。

方式二,由于用戶自定義的變量不需要聲明,可以使用SELECT直接定義變量和賦值。

SELECT @變量名1 := 變量值1 , @變量名2 := 變量值2 

方式三,將SQL的查詢結(jié)果賦值給變量。

SELECT 字段名 INTO @變量名 FROM 表名

將某個(gè)表的某個(gè)字段的結(jié)果賦值給變量。

2)使用變量

SELECT @變量名1

2.2.用戶自定義變量的案例

1)使用set定義變量并賦值

1.一次性定義一個(gè)變量
mysql> set @name = 'jiangxl';
或者
mysql> set @username :=  'wang';

2.一次性定義多個(gè)變量
mysql> set @username = 'wang' , @userid = '1';
或者
mysql> set @age := '19' , @book := 'linux';

2)使用select定義變量并賦值

使用select定義完變量賦完值之后就可以看到變量的值。

1.一次性定義一個(gè)變量
mysql> select @myzhiwu := 'devops_linux';
+----------------------------+
| @myzhiwu := 'devops_linux' |
+----------------------------+
| devops_linux               |
+----------------------------+

2.一次性定義多個(gè)變量
mysql> select @myzhiwu := 'devops_linux' , @myage := '25';
+----------------------------+----------------+
| @myzhiwu := 'devops_linux' | @myage := '25' |
+----------------------------+----------------+
| devops_linux               | 25             |
+----------------------------+----------------+

3)將ryxxb的總數(shù)賦值給變量

mysql> select count(*) into @mycount from ryxxb;

4)查看變量的值

查詢各個(gè)定義的變量所對(duì)應(yīng)的值。

mysql> select @name,@username,@userid,@age,@book,@myzhiwu,@myage;
+---------+-----------+---------+------+-------+--------------+--------+
| @name   | @username | @userid | @age | @book | @myzhiwu     | @myage |
+---------+-----------+---------+------+-------+--------------+--------+
| jiangxl | wang      | 1       | 19   | linux | devops_linux | 25     |
+---------+-----------+---------+------+-------+--------------+--------+

3.可以在存儲(chǔ)過(guò)程中定義的局部變量

局部變量是在存儲(chǔ)過(guò)程中聲明的,僅應(yīng)用于存儲(chǔ)過(guò)程的BEGIN…END這個(gè)范圍中,局部變量需要通過(guò)DECLARE關(guān)鍵字聲明,聲明完成后再通過(guò)SET或者SELECT進(jìn)行賦值,局部變量和用戶自定義變量的賦值方式是一模一樣的。

3.1.局部變量的語(yǔ)法格式

1)聲明變量

DECLARE 變量名 變量值的類型 [DEFAULT 默認(rèn)值]

變量值的類型就是數(shù)據(jù)庫(kù)字段的類型,例如:INT BIGINT CHAR VARCHAR DATE TIME等等。

2)變量賦值

SET 變量名 = 變量值
SET 變量名 := 變量值
SELECT 字段名 INTO 變量名 FROM 表名;

3.2.局部變量的應(yīng)用案例

創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,在里面定義兩個(gè)局部變量,分別用SET和SELECT賦值,最后查看變量的內(nèi)容。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-455936.html

1.創(chuàng)建視圖
create procedure proc_2()
begin
	declare ryxxb_count int default 0;			#聲明ryxxb表總數(shù)的變量,類型為int,默認(rèn)值為0
	declare username varchar(10);				#聲明username變量,類型為varchar
	set username := 'jiangxl';						#賦值username變量
	select count(*) into ryxxb_count from ryxxb;		#將ryxxb表的總數(shù)據(jù)量賦值為ryxxb_count變量
	select ryxxb_count,username;						#查詢變量的值
end;

2.調(diào)用視圖
mysql> call proc_2();
+-------------+----------+
| ryxxb_count | username |
+-------------+----------+
|          22 | jiangxl  |
+-------------+----------+
1 row in set (0.00 sec)

到了這里,關(guān)于第62講:MySQL存儲(chǔ)過(guò)程中變量的定義及應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包