# ユーザー定義変数

__*ユーザー定義変数*__

+ 値をユーザー定義変数に保存し、それを他のプリペアドステートメントで参照できます
+ ユーザー定義変数:
  + その前に**`@`**の記号を付けてください
  + **`SET`** ステートメントを使用して値を割り当ててください:**`SET @variable_name = expr`**
+ 現在のセッションでのみ表示

------------------------------------------------------------
ユーザー変数には、テーブル名やカラム名と同じ命名条件があります。変数名は、現在の文字セットの英数字と `.`、`_`、`$` という文字で構成されます。変数名に他の文字を使用するには、名前全体を文字列または識別子としてクォーテーションで囲みます。例えば:
```
@'my-var'
@"my-var"
@`my-var`
```

`SET` の場合は、代入演算子として `=` または `:=` を使用します。値 (リテラルまたは式) を変数に割り当てる場合、値のデータ型は整数、10 進数、2 進数または非バイナリ文字列、または `NULL` でなければなりません。

ユーザー変数に文字列を割り当てると、その変数は文字列と同じ文字セットと照合順序順序を使用します。

ユーザー変数は暗黙的に強制されます。(強制性とは、1 つの式に含まれる値の間で照合順序が競合する場合に、どの値の照合順序順序を変換するかを定義します。)これは、テーブルで定義されている照合順序順序とは異なる照合順序順序を持つ文字列を挿入または更新する場合のテーブルカラム値と同じように機能します。
