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操作に接続します

推薦する

JS 開発効率を上げる4つの超実践的なヒント

目次1. 短絡判定2. オプション連鎖演算子 (?) 3. ヌル合体演算子 (??) 4. 終了関数...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

MySQLのトランザクション特性とレベル原則の分析

1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...

MySQL 5.7 解凍版のインストール、アンインストール、および文字化けしたコードの問題のグラフィック解決

1. 解凍版のインストール(1)圧縮パッケージをダウンロードし、ディスクの場所に解凍します。圧縮パッ...

Homebrewを使用してMacにMySQLをインストールするときにログインできない問題を解決する

お使いのコンピュータが Mac の場合、homebrew を使用して MySQL をインストールする...

JavaScript 関数のカリー化

目次1 関数カリー化とは何ですか? 2 カレーの役割と特徴2.1 パラメータの再利用2.2 早期復帰...

MySQL 8.0 DDLアトミック機能と実装原則

1. DDLアトミック性の概要8.0 より前は、統一されたデータ ディクショナリ dd はありません...

ウェブページの読み込み速度を上げる6つのヒント

第二に、キーワードのランキングは、Webページの表示速度にも関係しています(参照:キーワードランキン...

MySQL のインデックスとビューの使用方法と違いの詳細な説明

序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...

CentOS7 で yum を使用して PostgreSQL と PostGIS をインストールする方法

1. yumソースを更新するCentOS7 のデフォルトの yum リポジトリの PostgreSQ...

Docker で Harbor パブリック リポジトリを構築する方法の例

前回のブログ投稿では、レジストリのプライベート ウェアハウスについて説明しました。今日は、Harbo...

nginx をシャットダウン/再起動/起動する方法

閉鎖サービス nginx 停止systemctl 停止 nginx起動するサービス nginx 開始...

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

Unicode 署名 BOM の詳細な説明

Unicode 署名 BOM - BOM とは何ですか? BOM は Byte Order Mark...