MySQL ユーザー変数と set ステートメントの例の詳細な説明

MySQL ユーザー変数と set ステートメントの例の詳細な説明

1 ユーザー変数の概要

ユーザー変数は、ユーザーが定義する変数です。ユーザー変数に値を割り当てて、スカラー式を通常使用できる場所であればどこでも使用できます。

ユーザー変数を導入する前に、set ステートメントまたは select ステートメントを使用して変数を定義し、値を割り当てる必要があります。そうしないと、変数には空の値しか含まれません。

ユーザー変数は接続に関連付けられます。つまり、あるクライアントによって定義された変数は、他のクライアントでは表示または使用できません。クライアントが終了すると、そのクライアントによって接続されたすべての変数が自動的に解放されます。

2 ユーザー変数の定義

set ステートメントは、システム変数またはユーザー変数に値を割り当てるために使用できます。ユーザー変数の定義は次のとおりです。

SET @var_name = expr [, @var_name = expr] ...

SELECT ステートメントを使用して以下を定義することもできます。

@var_name := expr [, @var_name = expr] を選択...

ユーザー変数: 「@」で始まり、「@var_name」の形式になっていて、ユーザー変数を列名と区別します。列の指定がない限り、任意のランダム、複合、スカラー式を使用できます。

変数名は、現在の文字セットの英数字と「_」、「$」、「.」で構成できます。デフォルトの文字セットは ISO-8859-1 Latin1 です。これは、mysqld の --default-character-set オプションで変更できます。

SET の場合、値を割り当てるために = または := を使用できますが、SELECT の場合、値を割り当てるために := のみを使用できます。

単純な SELECT ステートメントを使用して、定義されたユーザー変数の値を照会できます。

3 ユーザー変数の使用

3.1 セットを通した例

変数に値を割り当てるために使用されるスカラー式は、複合式にすることができます。計算、関数、システム スカラー、その他のユーザー変数、およびサブクエリが許可されます。次に、SELECT ステートメントを通じてユーザー変数の値を取得し、その結果として 1 行のテーブルが生成されます。

mysql> @var1=1、@var2='vartest'、@var3=abs(-2)、@var4=(mysql.user から count(*) を選択) を設定します。
mysql> @var1、@var2、@var3、@var4 を選択します。
+-------+---------+-------+-------+
| @var1 | @var2 | @var3 | @var4 |
+-------+---------+-------+-------+
| 1 | vartest | 2 | 25 |
+-------+---------+-------+-------+

ユーザー変数を割り当てるために使用される式では、他のユーザー変数も指定できます。MySQL は、変数に値を割り当てる前に、まずすべての式の値を判定することに注意してください。

例えば:

mysql> @varA = 2 を設定します。

次の 2 つの例では、varB の値が異なります。

例1:

mysql> @varA = 3、@varB = @varA を設定します。
mysql> @varB を選択します。
+-------+
| @varB |
+-------+
| 2 |
+-------+

例2:

mysql> @varA = 3 を設定します。 
mysql> @varB = @varA を設定します。
mysql> @varB を選択します。            
+-------+
| @varB |
+-------+
| 3 |
+-------+ 

3.2 選択による例

set ステートメントと比較して、select を使用して変数を定義すると、表形式の結果が返されます。

mysql> @var1:=1、@var2:='vartest'、@var3:=abs(-2)、@var4:=(mysql.user から count(*) を選択) を選択します。
+----------+------------------+----------------+------------------------------------------+
| @var1:=1 | @var2:='vartest' | @var3:=abs(-2) | @var4:=(mysql.user から count(*) を選択) |
+----------+------------------+----------------+------------------------------------------+
| 1 | vartest | 2 | 25 |
+----------+------------------+----------------+------------------------------------------+
mysql> @var1、@var2、@var3、@var4 を選択します。
+-------+---------+-------+-------+
| @var1 | @var2 | @var3 | @var4 |
+-------+---------+-------+-------+
| 1 | vartest | 2 | 25 |
+-------+---------+-------+-------+
+-------+---------+-------+-------+
| 1 | vartest | 2 | 25 |
+-------+---------+-------+-------+ 

4 ユーザー変数の考慮

4.1 ユーザー変数は where 句または having 句で使用されます。最初に別のステートメントで定義する必要があります。たとえば、次の例では、最初のクエリは結果を返しません。定義されて初めて、後続のクエリで出力されます。

mysql> mysql.user から @H:='localhost' を選択します (host = @H);
空のセット (0.00 秒)
mysql> @H:='localhost' を選択します。
+-----------------+
| @H:='ローカルホスト' |
+-----------------+
| ローカルホスト |
+-----------------+
セット内の 1 行 (0.00 秒)
mysql> @H:='localhost'、mysql.user から user を選択します (host = @H);
+-+---------------------------------+
| @H:='localhost' | ユーザー |
+-+---------------------------------+
| ローカルホスト | |
| ローカルホスト | ジェシー |
| ローカルホスト | ローカル |
| ローカルホスト | ルート |
| ローカルホスト | ユーザータブ更新 |
+-+---------------------------------+

4.2 ユーザー変数はセッション レベルにあります。クライアントを閉じるかログアウトすると、すべてのユーザー変数は消えます。カスタム変数を保存する場合は、テーブルを作成し、そのテーブルにスカラーを挿入する必要があります。

4.3 ユーザー変数名では大文字と小文字は区別されません。

4.4 未定義の変数は null に初期化されます。

5 補足知識: mysql文do

do ステートメントでは、1 つ以上のスカラー式が使用され、MySQL はそれらを 1 つずつ処理しますが、式の結果は表示しません。たとえば、結果を確認せずにバックグラウンドで何かを実行する関数を呼び出すことができます。

例えば:

mysql> sleep(5) を実行します。
クエリは正常、影響を受けた行は 0 行 (5.00 秒)

要約する

これで、MySQL ユーザー変数と set ステートメントに関するこの記事は終了です。MySQL ユーザー変数と set ステートメントに関するより詳しい情報については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL でカスタム変数を使用して遅延 UNION を記述する例
  • MySQL 変数の原理と応用例
  • MySQL の起動オプションとシステム変数の例の詳細な説明
  • mysql 変数の使用例の分析 [システム変数、ユーザー変数]
  • MySQL ストアド プロシージャを作成 (CREATE PROCEDURE) して呼び出す (CALL) 方法と、変数を作成 (DECLARE) して割り当てる (SET) 方法
  • MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)
  • MySQL 8.0.12 のインストールと環境変数の設定チュートリアル (Win10 の場合)
  • MySQLでグローバル変数とセッション変数を設定する2つの方法の詳細な説明
  • MySQL 5.6.23 のインストールと設定環境変数のチュートリアル
  • MySQLカスタム変数の概念と特徴

<<:  JS+Canvas でダイナミックな時計効果を実現

>>:  DockerはホストのMysql操作に接続します

推薦する

MySQL の group by に関する簡単な説明

目次1. はじめに2. ユーザーテーブルを準備する2.1 グループ化ルール2.2 グループの使用2....

MySQL のロック待機とデッドロック問題の分析

目次序文: 1. ロック待機とデッドロックを理解する2. 現象の再発と治療要約:序文: MySQL ...

vue3 のコンポーネントの互換性のない変更の詳細な説明

目次機能コンポーネント非同期コンポーネントの書き方とdefineAsyncComponentメソッド...

Windows での MySQL データベースのマスター/スレーブ構成チュートリアル

WindowsでMySQLデータベースのマスターとスレーブを構成する詳細なプロセスは次のとおりです。...

CSS3 を使用してピカチュウのアニメーション壁紙を作成する例

文章さて、次はレンダリングを見せましょう。画像を見て初めて理解することに興味が湧くでしょう。そうでな...

Vmwareでディスクを追加する方法:ディスクを拡張する

この記事では、ディスクを追加または拡張して、Vmare で有効にする方法について説明します。シナリオ...

Node.js http モジュールの使用

目次序文ウェブHTTP サーバーファイルサーバー練習する序文Node.js 開発の目的は、JavaS...

怖いハロウィーン Linux コマンド

ハロウィーンではありませんが、Linux の不気味な側面に注目する価値はあります。幽霊、魔女、ゾンビ...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - ログポイントに基づくレプリケーション

ログポイントベースのレプリケーション1. マスターデータベースとスレーブデータベースに専用のレプリケ...

Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します

目次序文必要成し遂げる最初のレンダリングメニュー項目をクリックしますスタイルの区別デフォルトのハイラ...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

MySQLの通常インデックスとユニークインデックスの違いの詳しい説明

目次1 概念上の区別2 事例紹介3 クエリパフォーマンス4 アップデートのパフォーマンス4.1 記憶...

vite+vue3+element-plus プロジェクトをビルドする手順

viteを使用してvue3プロジェクトを構築するターミナルで次のコマンドを実行すると、Vite を使...

HTMLのテーブルの内容は中央に水平と垂直に表示されます

CSSスタイルファイルで指定 #class td /*表のテキストを左右上下に揃えるように設定する*...

CSS で垂直方向の中央揃えを実装するいくつかの方法の概要

フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は ma...