您的位置:首頁 > 教程 > Mysql/MariaDB > MySQL詳細講解變量variables的用法

MySQL詳細講解變量variables的用法

2022-06-18 12:10:16 來源:易采站長站 作者:

MySQL詳細講解變量variables的用法

目錄
變量 variables1、系統變量1.1、查看系統變量1.2、修改系統變量2、會話變量3、局部變量4、變量作用域4.1、局部作用域4.2、會話作用域4.3、全局作用域

3YQ站長之家-易采站長站-Easck.Com

變量>

MySQL本質是一種編程語言3YQ站長之家-易采站長站-Easck.Com

3YQ站長之家-易采站長站-Easck.Com

1、系統變量

對所有用戶客戶端都有效3YQ站長之家-易采站長站-Easck.Com

3YQ站長之家-易采站長站-Easck.Com

1.1、查看系統變量

1、方式一3YQ站長之家-易采站長站-Easck.Com

show variables [like 'pattern'];

示例3YQ站長之家-易采站長站-Easck.Com

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+

2、方式二:3YQ站長之家-易采站長站-Easck.Com

使用select查詢變量的數據值3YQ站長之家-易采站長站-Easck.Com

select @@變量名;

示例3YQ站長之家-易采站長站-Easck.Com

select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
|            1 |
+--------------+

3YQ站長之家-易采站長站-Easck.Com

1.2、修改系統變量

1、局部修改(會話級別)3YQ站長之家-易采站長站-Easck.Com

-- 只針對當前客戶端當次連接有效
set 變量名 = 值;
-- eg:
set autocommit = 'off';
show variables like 'autocommit';

2、全局修改3YQ站長之家-易采站長站-Easck.Com

-- 所有客戶端,都有效
set global 變量名 = 值;
set @@global.變量名 = 值;
-- eg:
set global autocommit = 'off';

注意,全局修改之后,重啟客戶端生效3YQ站長之家-易采站長站-Easck.Com

3YQ站長之家-易采站長站-Easck.Com

2、會話變量

也稱為用戶變量,設置的變量,只針對當前用戶使用的客戶端生效3YQ站長之家-易采站長站-Easck.Com

-- 定義用戶變量
set @變量名 = 值;
set @age = 23;

mysql中沒有比較符號 == ,使用的是 =;3YQ站長之家-易采站長站-Easck.Com
為了避免分不清是賦值還是比較,賦值使用:=3YQ站長之家-易采站長站-Easck.Com

set @變量名 := 值;
set @name := 'Tom';

mysql允許將數據從表中取出存儲到變量中,只能是一行數據3YQ站長之家-易采站長站-Easck.Com

-- 1、賦值且查看賦值過程
select @變量1 := 字段1, @變量2 := 字段2 from 表 where 條件
select @name := name, @age := age from my_student limit 1;
+---------------+-------------+
| @name := name | @age := age |
+---------------+-------------+
| 劉備          |          18 |
+---------------+-------------+
--- 2、只賦值不看過程
select 字段1, 字段2 from 表 where 條件 into @變量1, @變量2;
select name, age from my_student limit 1 into @name, @age;

查看變量3YQ站長之家-易采站長站-Easck.Com

select @變量名
mysql> select @name, @age;
+--------+------+
| @name  | @age |
+--------+------+
| 劉備   |   18 |
+--------+------+

3YQ站長之家-易采站長站-Easck.Com

3、局部變量

作用范圍在begin到end語句塊之間,在該語句塊里設置的變量3YQ站長之家-易采站長站-Easck.Com

    declare語句用于定義局部變量局部變量>

    聲明語法3YQ站長之家-易采站長站-Easck.Com

    declare 變量名 數據類型 [屬性];
    

    3YQ站長之家-易采站長站-Easck.Com

    4、變量作用域

    變量能夠使用的區域范圍3YQ站長之家-易采站長站-Easck.Com

    3YQ站長之家-易采站長站-Easck.Com

    4.1、局部作用域

    declare>

    declare關鍵字聲明的變量沒有任何符號修飾,就是普通字符串,如果再外部訪問該變量,系統會自動認為是字段3YQ站長之家-易采站長站-Easck.Com

    3YQ站長之家-易采站長站-Easck.Com

    4.2、會話作用域

    用戶定義的,使用@符號定義的變量,使用set關鍵字3YQ站長之家-易采站長站-Easck.Com

    會話作用域,當次連接有效只要再本連接中,任何地方都可以使用(可以在結構內容,也可以跨庫)3YQ站長之家-易采站長站-Easck.Com

    會話變量可以再函數內部使用3YQ站長之家-易采站長站-Easck.Com

    set @name = '張三';
    create function get_name() returns char(4)
    return @name;
    select get_name();
    +------------+
    | get_name() |
    +------------+
    | 張三       |
    +------------+

    會話變量可以跨庫3YQ站長之家-易采站長站-Easck.Com

    use mydatabase2;
    mysql> select @name;
    +--------+
    | @name  |
    +--------+
    | 張三   |
    +--------+ 

    3YQ站長之家-易采站長站-Easck.Com

    4.3、全局作用域

    所有的客戶端,所有的連接都有效,需要使用全局符號來定義3YQ站長之家-易采站長站-Easck.Com

    set global 變量名 = 值;
    set @@global.變量名 = 值;
    

    通常,在sql編程的時候,不會使用自定義變量來控制全局,一般定義會話變量或者結構中使用局部變量來解決問題3YQ站長之家-易采站長站-Easck.Com

    到此這篇關于MySQL詳細講解變量variables的用法的文章就介紹到這了,更多相關MySQL variables內容請搜索易采站長站以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持易采站長站!3YQ站長之家-易采站長站-Easck.Com

    如有侵權,請聯系QQ:279390809 電話:15144810328

相關文章

  • mysql 5.7.30安裝配置方法圖文教程

    mysql 5.7.30安裝配置方法圖文教程

    之前把服務器里面的MySQL卸了重裝,安裝mysql時未做總結,換新電腦,補上安裝記錄,安裝的時候,找了些網友的安裝記錄,發現好多坑 截個圖,作為筆記,也正好留給需要的朋友們。
    2019-01-03
  • MySQL5.6免安裝版環境配置圖文教程

    MySQL5.6免安裝版環境配置圖文教程

    MySQL是一個小巧玲瓏但功能強大的數據庫,目前十分流行。但是官網給出的安裝包有兩種格式,一個是msi格式,一個是zip格式的。很多人下了zip格式的解壓發現沒有setup.exe,面對一堆文
    2019-01-04
  • Linux下安裝mysql-8.0.20的教程詳解

    Linux下安裝mysql-8.0.20的教程詳解

    ** Linux下安裝mysql-8.0.20 ** 環境介紹 操作系統:CentOS 7 mysql下載地址:https://dev.mysql.com/downloads/mysql/ 下載版本:mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 卸載mysql 查看是否安裝過mysql,命令:fin
    2020-05-24
  • linux環境下安裝mysql數據庫的詳細教程

    linux環境下安裝mysql數據庫的詳細教程

    1.安裝數據庫 1)yum -y install mysql-server(簡單) yum命令自動從網上尋找mysql服務資源,下載至本地并完成安裝 2)也可以自己在網上下載mysql服務,通過xftp傳輸至Linux系統,自己安裝(一般安
    2020-06-20
  • MySQL8.0.20安裝教程及其安裝問題詳細教程

    MySQL8.0.20安裝教程及其安裝問題詳細教程

    原文地址:https://blog.csdn.net/m0_46579864/article/details/105981304 官網下載MySQL的安裝包 1.下載鏈接如下: MySQL8.0.20版本 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html 其他版本:MySQL8.0.16版本
    2020-05-10
  • MySQL對數據庫操作(創建、選擇、刪除)

    MySQL對數據庫操作(創建、選擇、刪除)

    MySQL 創建數據庫 我們可以在登陸 MySQL 服務后,使用 create 命令創建數據庫,語法如下: CREATE DATABASE 數據庫名; 以下命令簡單的演示了創建數據庫的過程,數據名為 RUNOOB: [root@host]# mysql
    2020-07-01
  • Linux系統MySQL8.0.19快速安裝配置教程圖解

    Linux系統MySQL8.0.19快速安裝配置教程圖解

    一、環境介紹 Linux系統使用yum安裝MySQL需要從網上下載MySQL的一系列組件,這個過程非常耗時且有下載中斷的可能,如果想要快速安裝MySQL,可以先在網上將MySQL的離線包下載下來傳到系
    2020-02-27
  • mysql 加了 skip-name-resolve不能鏈接數據庫問題的解決方法

    mysql 加了 skip-name-resolve不能鏈接數據庫問題的解決方法

    mysql 加了 skip-name-resolve不能鏈接的問題, 要確認 MySql 是否采用過主機名的授權 在 MySql Server 的配置文件 My.ini 中,增加如下兩行: [mysqld] skip-name-resolve 它將禁止 MySql Server 對外部連接進
    2019-01-04
色七七影院_香港三级台湾三级在线播放_男人放进女人阳道猛进猛出