ホームページ >データベース >mysql チュートリアル >MySQL でユーザー定義、ローカル、サーバーのシステム変数を宣言して使用する方法は?

MySQL でユーザー定義、ローカル、サーバーのシステム変数を宣言して使用する方法は?

DDD
DDDオリジナル
2025-01-22 03:26:15824ブラウズ

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

MySQL 変数の詳しい説明と応用

MySQL の変数は、クエリの実行中に値を一時的に保存するコンテナです。ユーザー定義変数、ローカル変数、サーバー システム変数の 3 つの主なタイプがあります。

ユーザー定義変数 (@ プレフィックス)

  • 宣言: 明示的な宣言は必要ありません
  • 初期値:NULL
  • データ型: 整数、10 進数、浮動小数点、文字列、または 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
  • データ型: 整数、10 進数、文字列、または 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。