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

推薦する

HTML 5 スタイルシートのリセット

この CSS リセットは、Eric Meyers の CSS リセットに基づいて変更されており、特に...

Win10 での MySQL 8.0.15 のインストールと設定のチュートリアル

最近私が学んでいるのは MySQL の知識なので、MySQL をインストールすることが非常に重要です...

MySQLカスタム関数とストアドプロシージャの詳細な説明

序文この記事では主にMySQLのカスタム関数とストアドプロシージャに関する関連コンテンツを紹介し、皆...

CSS マルチカラムレイアウトソリューション

1. 固定幅+適応型期待される効果: 左側は固定幅、右側は適応幅 共通コード: html: <...

Vue フロントエンド開発補助機能状態管理詳細例

目次マップ状態マップゲッターマップミューテーションマップアクション例まとめマップ状態コンポーネントが...

Centos8.2 クラウド サーバー環境に Tomcat8.5 をインストールするための詳細なチュートリアル

Tomcatをインストールする前に、まずJDK環境をインストールしてくださいLinux サーバー上で...

WeChat アプレット ピッカー マルチ列セレクター (モード = multiSelector)

目次1. 効果図(複数列) 2. 通常セレクター: mode = selector、複数列セレクター...

CSS疑似クラス名を数字で始めないでください

初心者が div+css を開発する場合、.ggg、#ccc などの形式の CSS 疑似クラス名を付...

Vue.jsは音楽プレーヤーを実装します

この記事では、音楽プレーヤーを実装するためのVue.jsの具体的なコードを参考までに共有します。具体...

HTMLは入力完了を検出する機能を実装する

入力が進行中かどうかを検出するには、「onInput(event)」を使用しますコンテンツが変更され...

threejs でリアルタイムポリゴン屈折を実装する方法

目次序文ステップ1: セットアップと前方屈折ステップ2: 反射とフレネル方程式ステップ3: 多面屈折...

MySQL Innodb ストレージ構造と Null 値の保存の詳細な説明

背景:テーブルスペース: すべての INNODB データはテーブルスペース (共有テーブルスペース)...

Vue が天気予報機能を実装

この記事では、天気予報機能を実現するためのVueの具体的なコードを参考までに共有します。具体的な内容...

CSS リスト モデルでのマーカー タグの使用

この記事では主に、 list-itemの下にある::master疑似要素、 list-style-i...

ユーザーエクスペリエンスの概要

最近では、ソフトウェアやウェブサイトのいずれの作業であっても、設計時に「ユーザー エクスペリエンス」...