日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

中set无效是怎么回事_一起认识下,那些我们应该知道的mysql中的变量知识点

發(fā)布時(shí)間:2024/4/20 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中set无效是怎么回事_一起认识下,那些我们应该知道的mysql中的变量知识点 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:

這篇文章主要是認(rèn)識(shí)一下mysql中的變量,本來是不準(zhǔn)備整理的,但是發(fā)現(xiàn)后面的存儲(chǔ)過程等等在實(shí)際用的時(shí)候還挺多。

mysql里面的變量你可以和java中的變量進(jìn)行對比理解。主要分為兩種:系統(tǒng)變量和自定義變量。自定義變量是重點(diǎn)。

一、系統(tǒng)變量

系統(tǒng)變量那肯定就是mysql數(shù)據(jù)庫為我們提供的,再細(xì)化的話又可以分為兩種:全局變量和會(huì)話變量。

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

只需要輸入show global variables;回車之后你會(huì)發(fā)現(xiàn)有很多的系統(tǒng)變量,查看會(huì)話變量的時(shí)候只需要把global變成session就可以了。會(huì)話變量的意思是只是在本次回話有效。會(huì)話的含義就是你開兩個(gè)命令行窗口,會(huì)話變量的值的改變在另外一個(gè)無效。

1mysql> show global variables;2+-----------------------------------+----------+3| Variable_name | Value |4+-----------------------------------+----------+5| auto_increment_increment | 1 |6| auto_increment_offset | 1 |7| autocommit | ON |8| automatic_sp_privileges | ON |

每一個(gè)人的機(jī)器可能數(shù)量不同。我的電腦里面有494條。

2、查看某個(gè)指定的系統(tǒng)變量

select @@global.變量名稱;查看會(huì)話的變量值的時(shí)候只需要把global變成session就可以了。

1mysql> select @@global.version_comment;2+------------------------------+3| @@global.version_comment |4+------------------------------+5| MySQL Community Server (GPL) |6+------------------------------+71 row in set (0.00 sec)

3、為某個(gè)變量賦值

set global | session 系統(tǒng)變量名 = 新值;

set @@global | @@session.系統(tǒng)變量名 = 值;

二、自定義變量

自定變量就是用戶自己定義的,而不是由系統(tǒng)提供的。自定義變量也可以分為兩種:用戶變量和局部變量。

1、用戶變量

用戶變量的作用域是當(dāng)前會(huì)話,也就是說你再新建一個(gè)終端或者是命令行窗口就無效了。

(1)聲明初始化:

set @用戶變量名 = 值

set @用戶變量名 := 值

select @用戶變量名:=值

1 mysql> set @fdd = 'java的架構(gòu)師技術(shù)棧'; 2Query OK, 0 rows affected (0.03 sec) 3 mysql> set @fdd2 := 'java的架構(gòu)師技術(shù)棧'; 4Query OK, 0 rows affected (0.00 sec) 5 mysql> select @fdd2 := 'java的架構(gòu)師技術(shù)棧'; 6+--------------------------------------+ 7| @fdd2 := 'java的架構(gòu)師技術(shù)棧' | 8+--------------------------------------+ 9| java的架構(gòu)師技術(shù)棧 |10+--------------------------------------+111 row in set (0.01 sec)

(2)賦值并查看

賦值是一個(gè)重點(diǎn),常常和表還有存儲(chǔ)過程等結(jié)合使用。

select 字段 into 自定義變量 from 表名;

1mysql> select * from user; 2+----+--------+---------+------+ 3| id | name | english | math | 4+----+--------+---------+------+ 5| 1 | 張三 | 70 | 75 | 6| 2 | 李四 | 75 | 80 | 7| 3 | 王五 | 85 | 90 | 8+----+--------+---------+------+ 93 rows in set (0.00 sec)1011mysql> select count(*) into @fdd from user;12Query OK, 1 row affected (0.00 sec)1314mysql> select @fdd;15+------+16| @fdd |17+------+18| 3 |19+------+201 row in set (0.01 sec)

2、局部變量

局部變量的作用域就是在定義他的begin end中有效。和我們java中的方法中的變量類似。

(1)聲明:

declare 變量名 類型;

declare 變量名 類型 default 默認(rèn)值;

(2)賦值

set @用戶變量名 = 值

set @用戶變量名 := 值

select @用戶變量名:=值

select 字段 into 自定義變量 from 表名;

(3)使用

select 局部變量名;

1mysql> delimiter $ 2mysql> CREATE PROCEDURE `test`.`my_test`(OUT aa VARCHAR(5),OUT bb INT) 3 -> BEGIN 4 -> DECLARE a VARCHAR(5); 5 -> DECLARE b INT DEFAULT 22; 6 -> SET aa = a; 7 -> SET bb = b; 8 -> END$ 9Query OK, 0 rows affected (0.07 sec)10mysql> delimiter ;

在這里建了一個(gè)存儲(chǔ)過程,聲明了倆變量aa、bb。在內(nèi)部定義局部變量。如果沒有給變量指定默認(rèn)值,則它的系統(tǒng)默認(rèn)值為 NULL。

今天就分享到這里哦,記得給小編點(diǎn)個(gè)關(guān)注哦

總結(jié)

以上是生活随笔為你收集整理的中set无效是怎么回事_一起认识下,那些我们应该知道的mysql中的变量知识点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。