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

推薦する

React Native環境のインストールプロセス

react-native インストールプロセス1.npx react-native init Awe...

Reactはダブルスライダークロススライドを実装します

この記事では、Reactでダブルスライダークロススライドを実装するための具体的なコードを参考までに共...

美しいチェックボックススタイル(複数選択ボックス)はIE8/9/10、FFなどと完全に互換性があります。

恥ずかしながら、このようなよく使われるチェックボックスのスタイルを変更するために、Baidu で長い...

Linux での SSH パスワードフリーログイン設定の詳細な説明

Linux サーバー A と B が 2 台あり、一方のサーバーから SSH 経由でパスワードなしで...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

HTML でマウスが停止したときに行全体の色 (tr) を変更する方法

純粋な CSS を使用して、マウスが行の上を通過するときに行の背景色を変更し、その行にフォーカスがあ...

jsドラッグ効果の原理と実装

ドラッグ機能は主に、ドラッグによる並べ替え、ポップアップ ボックスのドラッグと移動など、ユーザーがカ...

Vueでaxiosをカプセル化する方法

目次1. インストール1. はじめに3. インターフェースルートアドレス4. 使用例4.1 ダウンロ...

MySQLトリガーについて深く理解するための記事

目次1. SC テーブルを挿入または変更するときに、テスト スコアが 0 ~ 100 の範囲外の場合...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

MySQLでよく使われる文字列関数トップ10の詳細な説明

こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。データベース関数は、何らかの機能を持ち、...

Linux での MySQL のインストールに関するチュートリアル

目次1. 古いバージョンを削除する2. サーバーのカーネルタイプを確認し、適切なバージョンをダウンロ...

コードの互換性を高めるために、HTMLを次のように記述します。

たとえば、スクリーン リーダー ソフトウェアを必要とするユーザーなどです。フロントエンド開発者として...

mysql8.0.20 のダウンロードとインストールおよび発生した問題 (図とテキスト)

1.ブラウザでmysqlを検索してダウンロードしてインストールしますアドレス: https://d...