union (all) と limit および exists キーワードの使用法を理解するための MySQL シリーズチュートリアル

union (all) と limit および exists キーワードの使用法を理解するための MySQL シリーズチュートリアル

1.union: クエリ結果を追加できます

Union は、特に関連のない 2 つのテーブルのデータを結合して表示する場合に、クエリ結果を追加するために使用されます。
ただし、前提条件があります。異なる結果を結合する場合、列の数は同じである必要があります。

次のデータを使用して、union の使用方法を説明します。

ここに画像の説明を挿入

1) すべてを結合: 重複を削除できません

ここに画像の説明を挿入

2) ユニオン:重複排除の効果が得られます。

ここに画像の説明を挿入

2.limit: ページングクエリはこれに依存します

1) 限界の使用法に関する説明

① 制限は MySQL に固有のものであり、他のデータベースには存在しないため、普遍的ではありません。

② Limitは結果セット内のデータの一部を取得します。これがその機能です。

③ LimitはSQL文の実行における最後のステップです。

limit を使用するための構文は次のとおりです。

limit startIndex,length; startIndex は 0 から始まる開始位置を示し、0 はデータの最初の部分を示し、length は取得する部分の数を示します。

2) ケースの説明

データソースは次のとおりです。

ここに画像の説明を挿入

① 給与額上位5名の従業員を抽出し、その情報を表示します。

ここに画像の説明を挿入

② 給与順位が4位から9位の従業員を探します。

ここに画像の説明を挿入

3) 共通標準ページングSQL

ここに画像の説明を挿入

上の図によれば、次のことがわかります。

ここに画像の説明を挿入

Baidu ブラウザを例に挙げてみましょう。

ここに画像の説明を挿入

3. 使用法が存在する: 「相関サブクエリ」とも呼ばれる

ここに画像の説明を挿入

1) 存在する実行原理を理解する

データソースは次のとおりです。

ここに画像の説明を挿入

① 返される結果がレコードの行である場合

ここに画像の説明を挿入

② 返される結果が複数行のレコードである場合

ここに画像の説明を挿入

③原理説明

上図から、exists キーワードの後の SQL 文が何であっても、1 つの結果を照会しても複数の結果を照会しても、結果が見つかれば結果全体が True になり、MySQL では True は 1 で表されるため、最終結果は 1 になることがわかります。 exists キーワードに続く SQL ステートメントで結果が見つからない場合、最終的な戻り値は False になります。MySQL では、False は 0 で表されるため、最終的な結果は 0 になります。

2) 事例紹介

以下のデータ ソースを使用して、次の 2 つの演習を完了してください。

ここに画像の説明を挿入

① ジョブテーブルをクエリして、実行中のジョブを確認します。

ここに画像の説明を挿入

② ジョブテーブルをクエリして、どのジョブが実行されていないかを確認します。

ここに画像の説明を挿入

3) 存在するサブクエリの原理を示す図

ここに画像の説明を挿入

説明は次のとおりです。

「会社 A があります。会社内のすべてのジョブは jobs テーブルにあります。emp テーブルには、どのジョブが完了したかが表示されます。」
ジョブを選択.job
仕事から
存在しない場合(empから*を選択し、jobs.job=emp.job);

1) どのような結果を達成したいかを考えます。
ここで取得したいのは「どのジョブが完了していないか」です。つまり、返される結果はジョブテーブルから取得されますが、
「どのジョブが実行され、どのジョブが実行されていないかをどうやって知るのでしょうか?」これには、emp テーブルを参照する必要があります。

2) まず、jobs テーブルから最初のレコードを取得し、emp テーブルに入れて、テーブル内のすべての行と一致させます。馬が
最初の行を一致させるとき、empテーブルの各行には8つの列があるので、正確に何を一致させたいのでしょうか?
「where jobs.job = emp.job」と指定します。この条件は、
テーブルから最初のレコードを取得し、empの各行と照合します。より具体的には、最初の行と一致します。
ジョブ フィールドを一致させるには、jobs.job と emp.job が等しいかどうかを確認するだけです。等しい場合は、レコードを返します。
次に、最初の行を順番に比較します。jobs.jobとemp.jobが等しい限り、
このレコード。したがって、jobs の最初の行が emp の各行と一致すると、結果セットが返されます。

3) existsキーワードを見てみましょう。exists()によって返される結果はtrueまたはfalseです。括弧内に値がある場合、
存在する場合は true が返され、括弧内に値がない場合には false が返されます。 (1)によれば、我々は
ご存知のように、jobs の最初の行が emp の各行と一致した後、結果セットが返されます。これは、結果セットが返されたことを証明します。
値なので、exists() は true を返します。

4) exists() の前に not が追加されると、否定を意味します。 exists() は true を返しますが、exists() は true を返します。
戻り値は false です。

5) 上記の説明によれば、not exists() が false になった場合、元のステートメントは次のものと同等になります。
false の jobs から jobs.job を選択します。
したがって、店員の最初の行は取得できません。

6) 次に、jobs の 2 番目の行「SALESMAN」を取得し、emp テーブルの各行と照合します。
上記の手順を繰り返します。

上記は、union (all)、limit、exists キーワードを理解するための MySQL シリーズ記事の詳細な内容です。union (all)、limit、exists キーワードの MySQL シリーズの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL 選択最適化ソリューションに関する簡単な説明
  • MySQL で結果を選択して更新を実行する例のチュートリアル
  • MySQLの読み書き分離により挿入後にデータが選択されなくなる問題を解決
  • MySQL SELECT文の実行方法
  • MySQL で distinct メソッドを使用する詳細な例
  • MySQL で重複を削除するには、distinct または group by を使用する必要がありますか?
  • MySQL における distinct と group by の違い
  • MySQLのLIMIT文について詳しく説明します
  • MySQL のクエリパフォーマンスに対する制限の影響
  • MySQL での select、distinct、limit の使用

<<:  ウェブページでよく使用される共有コードの完全なリスト(フロントエンドに必須)

>>:  HTML 学習ノート - HTML 構文の詳細な説明 (必読)

ブログ    

推薦する

Nginx を使用してクロスドメイン Vue 開発環境を処理する方法

1. 需要正しい Cookie 配信と SSO テストを確実に実行できるように、ローカル テスト ド...

マインスイーパゲームを実装するための jQuery プラグイン (3)

この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する方法に関する3番目の記事...

純粋なCSS3で実装されたネオンライト効果

達成される効果は次のとおりです。 マウスがボタン内に移動すると、ネオンライトのような効果が生成され、...

MySQLの文字セット設定を5分で理解しましょう

目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...

新しいウィンドウで開くジャンプメニュー、window.open の使い方の紹介

コードをコピーコードは次のとおりです。 <前> <div> <sele...

JavaScript でオブザーバー パターンを実装する方法

目次概要オブザーバーパターンの応用シナリオオブザーバーパターンの実装要約する概要オブザーバー パター...

Centos7 への mysql8.0rpm のインストール チュートリアル

まず、図をダウンロードしてください 1. まず、centos7に付属しているmariadbをアンイン...

HTML の基礎必読 - CSS スタイルシートの包括的な理解

CSS (カスケーディング スタイル シート) は、HTML Web ページを美しくするために使用さ...

MySql テーブル内の行を削除する実用的な方法

まず、どのフィールドまたはフィールドの組み合わせがデータ行を一意に識別できるかを決定する必要がありま...

JavaScriptはクリックトグル機能を実装します

この記事の例では、クリックして切り替える機能を実装するためのJavaScriptの具体的なコードを参...

MySQL 5.7.21 のインストールと設定のチュートリアル

mysql5.7.21の簡単なインストール構成は次のとおりです。 1. MySQLのインストール1....

JavaScript プロトタイプのデータ共有とメソッド共有の実装を調べる

データ共有プロトタイプにはどのようなデータを書き込む必要がありますか?共有する必要があるデータはプロ...

Vueフレームワークで習得しなければならない重要な知識を学びます

1. Vueとは何かVue は、ユーザー ページを構築するためのプログレッシブ フレームワークです。...

MySQLの権限とインデックスの詳細な説明

mysql の権限とインデックスmysql の最高権限ユーザーは root です。 CREATE U...

WeChatアプレットが弾丸画面を送信するビデオプレーヤーを実装

この記事では、WeChatアプレットでビデオプレーヤーの集中砲火を実装するための具体的なコードを参考...