首頁 > 資料庫 > mysql教程 > MySQL 中的使用者定義變數、本地變數和系統變數有什麼不同?

MySQL 中的使用者定義變數、本地變數和系統變數有什麼不同?

Linda Hamilton
發布: 2025-01-22 03:11:10
原創
710 人瀏覽過

What's the Difference Between User-Defined, Local, and System Variables in MySQL?

MySQL變數宣告與使用

在MySQL中,為了在第二個查詢中使用變量,需要先宣告並初始化它們。

使用者自訂變數(以@開頭)

  • 無需聲明。
  • 可直接訪問,無需事先聲明或初始化。
  • 未初始化時值為NULL,資料類型為字串。
  • 使用SET或SELECT語句進行初始化。
  • 會話特定(其他客戶端無法查看或使用)。
  • 例如:
    <code class="language-sql">SET @start = 1, @finish = 10;
    SELECT * FROM places WHERE place BETWEEN @start AND @finish;</code>
    登入後複製

局部變數(無前綴)

  • 需要使用DECLARE聲明。
  • 用於在儲存過程中作為輸入參數或局部變數。
  • 例如:
    <code class="language-sql">DECLARE start INT unsigned DEFAULT 1;
    DECLARE finish INT unsigned DEFAULT 10;</code>
    登入後複製
  • 若缺少DEFAULT子句,初始值為NULL。
  • 作用域僅限於聲明它們的BEGIN...END塊。

伺服器系統變數(以@@開頭)

  • 由MySQL伺服器管理的系統變數。
  • 可以是GLOBAL(全域)、SESSION(會話)或BOTH(兩者)。
  • 影響伺服器操作(GLOBAL)或單一客戶端連線(SESSION)。
  • 使用SHOW VARIABLES或SELECT @@var_name查看。
  • 使用SET GLOBAL或SET SESSION動態修改。
  • 例如:
    <code class="language-sql">SET GLOBAL sort_buffer_size=1000000;</code>
    登入後複製

以上是MySQL 中的使用者定義變數、本地變數和系統變數有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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