MySQLのシステム変数とユーザー定義変数の違いとは?
MySQLには「システム変数」と「ユーザー定義変数」という2種類の変数が存在します。それぞれ有効範囲(スコープ)や型の扱い、接頭辞の記号が異なるため、本記事では両者の違いをわかりやすく解説します。
システム変数(System Variables)とは
システム変数は、厳密に型付けされた変数であり、「グローバル変数」とも呼ばれます。
システム変数はサーバーのグローバルスコープで初期化され、その値はMySQLサーバーを再起動するまで保持されます。つまり、サーバーを再起動すると設定した値は失われ、デフォルト値に戻ります。なお、あらかじめ定義されているシステム変数には、@@ という記号が接頭辞として付きます。
@@anyVariableName
ユーザー定義変数(User-defined Variables)とは
ユーザー定義変数は、「セッション固有の変数」とも呼ばれる緩やかに型付けされた変数です。セッション内の任意の場所で初期化でき、その値はセッションが終了するまで保持されます。ユーザー定義変数には、@ という記号が接頭辞として付きます。
@anyVariableName
両者の違いのまとめ
| 項目 | システム変数 | ユーザー定義変数 |
|---|---|---|
| 別名 | グローバル変数 | セッション固有変数 |
| 型付け | 厳密な型付け | 緩やかな型付け |
| 有効範囲 | サーバー全体(再起動まで) | セッション内(切断まで) |
| 接頭辞 | @@ | @ |
このように、システム変数はサーバー全体に影響する設定値を扱うのに対し、ユーザー定義変数は特定のセッション内でのみ使える一時的な値の格納に適しています。用途に応じて正しく使い分けることが重要です。
-
C言語の静的変数(static変数)とは?特徴・構文・サンプルコードを解説
静的変数とはC言語における静的変数は、初期化が一度だけ行われる特殊な変数です。通常の自動変数と異なり、コンパイラはプログラムの終了までこの変数を保持し続けます。そのため、関数を抜けても値が失われることはありません。静的変数は関数の内部でも外部でも定義できます。関数内で宣言された場合、その変数はそのブロックに対してローカルとなり、他の関数から直接アクセスすることはできません。また、静的変数には以下のような重要な特徴があります。デフォルト値はゼロ(明示的に初期化しなくても0で初期化される)プログラムの実行が終了するまで生存し続ける初期化は最初の一度だけ行われる静的変数の構文C言語で静的変数を宣言す
-
【初心者向け】PowerShellの変数の基本:作成・確認・削除・追加の方法をわかりやすく解説
コンピュータサイエンスにおいて、変数とは後で利用するために任意の情報を格納しておくメモリ上の場所のことです。言い換えれば、データを一時的に保存し、必要なときに取り出すための「入れ物」です。シェル環境では、そのデータは単語(文字列)でも数字(整数)でも構いません。 パソコンで意識的に変数を使ったことがない人でも、日常生活の中で変数に近いものを使っているはずです。「あれを取って」「これを見て」といった言葉は、文法上の変数(いわゆる代名詞)と言えます。「これ」「あれ」が何を指すのかは、話し手が頭に思い浮かべているものや指差している対象によって決まります。数学でも未知の値を記号で表しますが、それも立派