一起認識下,那些我們應該知道的mysql中的變數知識點
前言:
這篇文章主要是認識一下mysql中的變數,本來是不準備整理的,但是發現後面的儲存過程等等在實際用的時候還挺多。
mysql裡面的變數你可以和java中的變數進行對比理解。主要分為兩種:系統變數和自定義變數。自定義變數是重點。
一、系統變數
系統變數那肯定就是mysql資料庫為我們提供的,再細化的話又可以分為兩種:全域性變數和會話變數。
1、檢視所有的系統變數
只需要輸入show global variables;回車之後你會發現有很多的系統變數,檢視會話變數的時候只需要把global變成session就可以了。會話變數的意思是隻是在本次回話有效。會話的含義就是你開兩個命令列視窗,會話變數的值的改變在另外一個無效。
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 |
每一個人的機器可能數量不同。我的電腦裡面有494條。
2、檢視某個指定的系統變數
select @@global.變數名稱;檢視會話的變數值的時候只需要把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、為某個變數賦值
set global | session 系統變數名 = 新值;
set @@global | @@session.系統變數名 = 值;
二、自定義變數
自定變數就是使用者自己定義的,而不是由系統提供的。自定義變數也可以分為兩種:使用者變數和區域性變數。
1、使用者變數
使用者變數的作用域是當前會話,也就是說你再新建一個終端或者是命令列視窗就無效了。
(1)宣告初始化:
set @使用者變數名 = 值
set @使用者變數名 := 值
select @使用者變數名:=值
1 mysql> set @fdd = ‘java的架構師技術棧’; 2Query OK, 0 rows affected (0.03 sec) 3 mysql> set @fdd2 := ‘java的架構師技術棧’; 4Query OK, 0 rows affected (0.00 sec) 5 mysql> select @fdd2 := ‘java的架構師技術棧’; 6±-------------------------------------+ 7| @fdd2 := ‘java的架構師技術棧’ | 8±-------------------------------------+ 9| java的架構師技術棧 | 10±-------------------------------------+ 111 row in set (0.01 sec)
(2)賦值並檢視
賦值是一個重點,常常和表還有儲存過程等結合使用。
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) 10 11mysql> select count(*) into @fdd from user; 12Query OK, 1 row affected (0.00 sec) 13 14mysql> select @fdd; 15±-----+ 16| @fdd | 17±-----+ 18| 3 | 19±-----+ 201 row in set (0.01 sec)
2、區域性變數
區域性變數的作用域就是在定義他的begin end中有效。和我們java中的方法中的變數類似。
(1)宣告:
declare 變數名 型別;
declare 變數名 型別 default 預設值;
(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 ;
在這裡建了一個儲存過程,宣告瞭倆變數aa、bb。在內部定義區域性變數。如果沒有給變數指定預設值,則它的系統預設值為 NULL。
今天就分享到這裡哦,記得給我點個關注哦
相關文章
- 那些前端應該知道的HTTP知識前端HTTP
- 回溯法應該知道的知識點
- 你應該知道的緩動知識點
- 初識python你應該知道的6個知識點!Python
- Android —— 自定義View中,你應該知道的知識點AndroidView
- 關於蘋果iPhone XS Max快充,我們應該知道的五個知識點蘋果iPhone
- 淺談AsyncLocal,我們應該知道的那些事兒
- 前端工程師應該知道的yarn知識前端工程師Yarn
- 你應該知道的ip地址相關知識
- 100個你應該知道的java基礎知識Java
- 關於前端應該知道的5個小知識前端
- 關於面試,那些我完全不知道的知識面試
- IP地址劃分的那些知識點
- 那些你可能不知道的 ZooKeeper 知識
- 關於註解我們應該知道的
- MySQL知識點MySql
- 每個開發人員都應該知道的WebSockets知識Web
- 前端應該掌握的nginx知識前端Nginx
- Netty中的這些知識點,你需要知道!Netty
- 2.認識Dart中的物件和變數Dart物件變數
- 進行直播搭建前,我們應該瞭解的常識
- js基礎知識 你不知道的變數提升的坑JS變數
- 你需要知道的那些 Java 位元組碼知識Java
- Vue Router被我們忽略的知識點Vue
- mysql的一些知識點MySql
- 認識一下,我們是應用社交「幕後大佬」 IM 家族
- 生物識別技術:我們應該擔心嗎?
- 關於Mysql事務,你必須知道的幾個知識點!MySql
- 認識python中的數字Python
- 機器學習中那些必要又困惑的數學知識機器學習
- web開發知識體系中必要的知識點Web
- 一起來梳理JVM知識點JVM
- MySQL知識點總結MySql
- HTTP應知應會知識點複習手冊(下)HTTP
- 基礎的python知識2 (變數)Python變數
- 1.嘿,我們來認識一下vue吧!Vue
- 那些年我們一起追過的大佬
- 資料庫專家都應該知道的5個統計學知識資料庫