SQLを使用したデータベース管理では、データを効率的に操作および取得するためのさまざまな関数があります。その中でも、開発者やデータアナリストがよく利用するのがUNION句とIN演算子です。
以下に、機能、使用条件、構文の書き方に関する完全なガイドを示します。
UNION句
UNION句は、2つ以上のSELECT文の結果を結合するために使用されるSQLの句です。
この句を使用するには、テーブルを任意に結合することはできません。クエリがエラーを発生させないために満たすべき標準ルールがあります:
- 結合する各
SELECT文は同じ数のカラムを持つ必要があります。 - 対応するカラムのデータ型は同じか互換性がある必要があります。
SELECT文の各カラムは同じ順序でなければなりません。
デフォルトでは、UNION句は異なる値のみを選択して表示します。つまり、システムは自動的に結果をフィルタリングし、データの重複を防ぎます。
UNIONの構文
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL句
UNIONファミリーには、UNION ALLとして知られる構文のバリエーションもあります。
両者の主な違いは、システムが重複データを処理する方法にあります。UNIONが重複を削除するのに対し、UNION ALLはデータの重複を許可します。
この句は、結合された各SELECT文のすべての行を、完全に同一の値があるかどうかに関係なく表示します。
UNION ALLの構文
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
注記: 通常、
UNION ALLは通常のUNIONよりも高速です。なぜなら、システムが重複行をスキャンして削除するための追加の時間を費やす必要がないからです。
IN演算子
IN演算子は、WHERE句に追加される論理演算子で、複数の値の可能性に基づいてデータをフィルタリングします。
この演算子は、複数の条件を選択する際に繰り返しOR演算子を使用する代わりの、ショートハンド(簡略記法)としてよく言われます。
INを使用すると、SQLコードがはるかに整然とし、簡潔で読みやすくなります。
特定の値リストを使用したIN演算子の構文
SELECT column_name(s) FROM table_name
WHERE column_name IN (value1, value2, ...);
サブクエリを使用したIN演算子の構文
値を手動で定義する代わりに、括弧内に別のSELECT文を配置して、動的に値のリストを生成することもできます。
SELECT column_name(s) FROM table_name
WHERE column_name IN (SELECT STATEMENT);
著者
Wilan
バリ・アイランド・テクノの常駐寄稿者であり、テクノロジー、プログラミング、ソフトウェアエンジニアリングの世界に関する知識を積極的に共有しています。