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() メソッドの使用の概要

推薦する

MySQLは現在の日付と時刻を取得する関数

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

div要素に丸い境界線を追加する方法

以下のように表示されます。 CSSコードコンテンツをクリップボードにコピー分割{境界線: 2px 固...

LinuxでLVMディスクを拡張する詳細な手順

1.ハードディスクを追加する2. パーティションの状態を確認します: fdisk -l 3. パーテ...

MySQL での実行計画の詳細分析

序文効率的なSQL文の書き方は、Explain実行計画の分析と切り離せません。実行計画とは何か、効率...

フローティング要素が親要素の高さを崩す原因と解決策の詳細な説明

フローティング要素は、親要素の高さを縮小します。要素を float float:left/right...

MySQLでストアドプロシージャをデバッグする最も簡単な方法

同僚から、一時テーブルを使用して変数データを挿入して表示する方法を教わったことがありますが、この方法...

大規模なMySQLデータベース用のマスタースレーブシステムを構築するアイデアを共有する

今週は戦争のように忙しかったです。他人に操られているような気がします。毎日朝早く出勤して夜遅く帰り、...

HTML ウェブページ作成のための 8 つの強力なテクニック

<br />作業を簡単に完了できる Web ページ作成ツールは数多くありますが、HTML...

MySQL カウントを向上させる方法のまとめ

多くのプログラマーは MySQL に精通していると思います。多くの人が count の使い方と、最適...

Docker コンテナ アプリケーションで避けるべき 10 の悪い習慣

コンテナが企業の IT インフラストラクチャに欠かせない要素となっていることは間違いありません。コン...

Flash が HTML div 要素を覆わないようにする方法

今日、フラッシュ広告のコードを書いていたとき、フラッシュに付属するリンクはポップアップ広告と間違われ...

MySQLの場合の使用例分析

まず、データベース テーブルを作成します。 テーブル `t_demo` を作成します ( `id` ...

いくつかの面接の質問を使ってJavaScriptの実行メカニズムを調べる

目次前の単語同期と非同期前菜プレートを追加マクロタスク マイクロタスク約束しましょうタイマーを追加す...

VueでTypescriptの設定手順を使用する

目次1. TypeScriptが古いVueプロジェクトに導入されるVue+Typescript プロ...

MySQL の主キーとトランザクションの詳細な説明

目次1. MySQLの主キーとテーブルフィールドに関するコメント1. 主キーと自動増分2. テーブル...