読み方 : ユニオンオールく

UNION ALL句

概要

UNION ALL句とはSQLにおいて複数のSELECT文の検索結果を一つの結果セットとして縦に連結する演算子。重複する行が存在していても削除せず、すべてそのまま出力する。
UNION ALL句のイメージ画像

二つのSELECT文の間に「UNION ALL」と記述することで、それぞれの文が抽出したレコードセットを連結して一つの出力として統合する。三つ以上のSELECT文を連結する場合は、各文の間に「UNION ALL」を繰り返し記述する。

連結する各SELECT文は、出力する列の数と並び順が一致している必要があり、対応する列同士のデータ型互換性を備えていなければならない。列名は異なっていても問題なく、結合後の結果には最初のSELECT文の列名が適用される。結果全体を並べ替えたい場合は、末尾のSELECT文の後にORDER BY句を一度だけ記述する。

UNION ALL句は、同じ構造を持つ複数のテーブルにデータが分散している場合に特に有用である。例えば、年度別や支店別に分かれたテーブルの内容を一覧として統合したい場合、各テーブルへのSELECT文をUNION ALL句で繋ぐだけで目的を達成できる。JOIN句も表を結びつけることができるが、列を横に結び付けるため、UNION ALL句とは目的も結果も異なる。

通常のUNION句­自体は統合後に重複を判定して一意の行だけを残すため、データの並べ替えや比較といった追加処理が必要になる。UNION ALL句はその処理を一切行わず取得した行をそのまま連結するため、処理速度はUNION句より高速である。重複が生じないことが事前に分かっている場合や、重複を含めてすべての行を取得したい場合は、UNION ALL句を選択するのが一般的とされる。

SQL集合演算にはUNION ALL句のほか、UNION句INTERSECT句、EXCEPT句などがあり、いずれも複数の問い合わせ結果に対して集合演算を行う仕組みである。UNION句SQL標準で定義されており、Oracle DatabaseSQL ServerPostgreSQLMySQLSQLiteなど主要なデータベース管理システムで共通して利用できる。ただし、型変換の規則や一部の構文には製品ごとの差異がある。

(2026.7.16更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。