MySQLのunion allとunionの違いを簡単に理解する

MySQLのunion allとunionの違いを簡単に理解する

Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union all は、重複行を含め、ソートを行わない、データに対する結合操作です。例:

データベース テーブルを作成します。

テーブル `t_demo` を作成します (
 `id` int(32) NULLではない、
 `name` varchar(255) デフォルト NULL,
 `age` int(2) デフォルト NULL,
 `num` int(3) デフォルト NULL,
 主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8;

この表をコピーします:

テーブル `t_demo_copy` を作成します (
 `id` int(32) NULLではない、
 `name` varchar(255) デフォルト NULL,
 `age` int(2) デフォルト NULL,
 `num` int(3) デフォルト NULL,
 主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8;

データを追加:

`t_demo` に VALUES ('1', '张三', '21', '69') を挿入します。
`t_demo` に値 ('2'、'Li Si'、'22'、'98') を挿入します。
`t_demo` に VALUES ('3', '王五', '20', '54') を挿入します。
`t_demo` に VALUES ('4', '赵甜', '22', '80') を挿入します。
`t_demo_copy` に VALUES ('1', '张三', '21', '69') を挿入します。
`t_demo_copy` に値 ('2'、'Zhu Bajie'、'22'、'98') を挿入します。
`t_demo_copy` に VALUES ('3', '王五', '20', '54') を挿入します。
`t_demo_copy` に VALUES ('4', '赵甜', '22', '80') を挿入します。
`t_demo_copy` に VALUES ('5', '孙武空', '22', '100') を挿入します。
`t_demo_copy` に値 ('6'、'Li Si'、'24'、'99') を挿入します。

MySQL の UNION

t_demoから*を選択
連合
t_demo_copyから*を選択

クエリ結果:

上記のクエリデータから次のことがわかります。

UNION はテーブルをリンクした後、重複レコードを除外し、生成された結果セットを並べ替え、重複レコードを削除してから結果を返します。

MySQL の UNION ALL

t_demoから*を選択
ユニオンオール
t_demo_copyから*を選択

クエリ結果:

上記のデータから次のことがわかります。

UNION ALL は、2 つの結果を単純に結合して返します。返された 2 つの結果セットに重複データがある場合、返された結果セットには重複データが含まれます。

効率:

効率の面では、UNION ALL は UNION よりもはるかに高速です。したがって、2 つのマージされた結果セットに重複データが含まれず、並べ替える必要がないことが確認できる場合は、UNION ALL を使用します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL の union と union all の簡単な分析
  • MySQL における UNION と UNION ALL の基本的な使い方
  • MySQLにおけるUNIONの使い方の詳細な説明
  • union (all) と limit および exists キーワードの使用法を理解するための MySQL シリーズチュートリアル

<<:  Linux システムを起動時に自動的にスクリプトを実行するように設定する方法の例

>>:  JS での Reduce() メソッドの使用の概要

推薦する

10 種類のモダンなレイアウトを実現するための CSS コード

序文日曜日に自宅で web.dev の 2020 3 日間ライブを視聴したところ、興味深い点がたくさ...

LeetCode の SQL 実装 (183. 注文をしたことがない顧客)

[LeetCode] 183.注文しない顧客Web サイトに、Customers テーブルと Or...

この記事はVueのライフサイクルを理解するのに役立ちます

目次1. beforeCreate & created 2. マウント前とマウント済み3. ...

Centos7 での mysql 8.0.15 のインストールと設定

この記事では、参考までにMySQL 8.0.15のインストールと設定のグラフィックチュートリアルを紹...

ElementUI ページネーション コンポーネントの使い方 Vue でのページネーション

ElementUIページングコンポーネントPagination in Vueの使用は参考になります。...

MySQL 8.0.13 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.13のインストールと設定のチュートリアルを参考までに紹介します。具...

W3C チュートリアル (3): W3C HTML アクティビティ

HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...

Webpack で環境変数を使用するためのさまざまな正しい姿勢

目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...

LinuxサーバにおけるNginxとApacheの共存の実装方法の分析

この記事では、Linux サーバー上で Nginx と Apache の共存を実装する方法について説...

CSS でデフォルトのスタイルをクリアし、共通のスタイルを設定する方法

CSS デフォルトスタイルをクリア通常の明確なデフォルト スタイル: *{ マージン:0; パディン...

SeataがMySQL 8バージョンを使用できない問題を解決する方法

考えられる理由: Seata が MySQL 8 をサポートしない主な理由は、接続ドライバーがバージ...

Vue v-for ループを書く 7 つの方法

目次1. v-forループでは常にキーを使用する2. 特定のスコープ内でv-forループを使用する3...

MySQL 10進数符号なし更新負数を0に変換

今日、インターフェースの同時実行の問題を検証したところ、これまでredisで解決していた同時実行のプ...

Dockerコンテナにnginxを簡単にデプロイするプロセスの分析

1. コンテナにnginxサービスをデプロイするcentos:7 イメージはコンテナを実行し、このコ...

MySQLのグループカウントと範囲集計を実装する2つの方法

1つ目:通常動作 選択 SUM(ddd) AS count_days、 場合 aa.days >...