首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中宣告和使用使用者定義的、本地的和伺服器系統變數?

如何在 MySQL 中宣告和使用使用者定義的、本地的和伺服器系統變數?

DDD
發布: 2025-01-22 03:26:15
原創
856 人瀏覽過

How to Declare and Use User-Defined, Local, and Server System Variables in MySQL?

MySQL變數詳解與應用

MySQL中的變數是暫存值的容器,用於查詢執行期間。主要分為三種:使用者自訂變數、局部變數和伺服器系統變數。

使用者自訂變數(@前綴)

  • 聲明:無需明確聲明
  • 初始值:NULL
  • 資料型態:整數、小數、浮點數、字串或NULL
  • 作用域:會話層級

初始化使用者自訂變數:

<code class="language-sql">SET @start = 1, @finish = 10;</code>
登入後複製

範例:在SELECT查詢中使用使用者自訂變數

<code class="language-sql">SELECT * FROM places WHERE place BETWEEN @start AND @finish;</code>
登入後複製

局部變數(無前綴)

  • 聲明:需要使用DECLARE聲明
  • 初始值:如果省略DEFAULT子句,則為NULL
  • 資料型態:整數、小數、字串或NULL
  • 作用域:僅限於聲明它們的BEGIN...END塊

在預存過程中宣告並初始化局部變數:

<code class="language-sql">DECLARE start INT unsigned DEFAULT 1;  
DECLARE finish INT unsigned DEFAULT 10;</code>
登入後複製

範例:在預存過程中使用局部變數

<code class="language-sql">CREATE PROCEDURE sp_test(var1 INT) 
BEGIN   
    DECLARE start  INT unsigned DEFAULT 1;  
    DECLARE finish INT unsigned DEFAULT 10;

    SELECT  var1, start, finish;

    SELECT * FROM places WHERE place BETWEEN start AND finish; 
END; </code>
登入後複製

伺服器系統變數(@@前綴)

  • 聲明:無需明確聲明
  • 初始值:由MySQL伺服器設定的預設值
  • 資料型態:取決於變數
  • 作用域:全域(伺服器範圍)或會話層級

查看伺服器系統變數的目前值:

<code class="language-sql">SELECT @@sort_buffer_size;</code>
登入後複製

修改伺服器系統變數的值:

<code class="language-sql">SET GLOBAL sort_buffer_size=1000000;</code>
登入後複製

以上是如何在 MySQL 中宣告和使用使用者定義的、本地的和伺服器系統變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板