和(表の集合演算)をわかりやすく解説!SQLのUNIONで学ぶ初心者向け入門
生徒
「先生、データベースの勉強をしていたら“和”という言葉が出てきました。これは算数の足し算と同じ意味なんですか?」
先生
「いい質問ですね。“和(ワ)”は表の集合演算(ヒョウノシュウゴウエンザン)のひとつで、SQL(エスキューエル)ではUNION(ユニオン)という命令を使います。算数の足し算というより、表と表を合わせてひとつにするイメージです。」
生徒
「なるほど、つまり2つの表を合体させるような感じですね!」
先生
「そうです。例えば社員表と顧客表の名前をまとめて一覧にしたいときに使います。これが“和”の考え方です。」
1. 和(ワ)とは?
和(ワ)は、表の集合演算のひとつで、2つ以上の表をまとめてひとつの結果を作る操作です。SQLの世界ではUNION(ユニオン)というキーワードで表現されます。和は、数学における集合の“和集合(ワシュウゴウ)”の考え方を応用したものです。
2. SQLのUNION(ユニオン)の基本
SQLのUNIONは、2つのSELECT文を組み合わせて、すべての結果をまとめる命令です。重複しているデータは自動的に取り除かれます。
SELECT 名前 FROM 社員
UNION
SELECT 名前 FROM 顧客;
この例では、社員と顧客の名前をまとめて表示します。同じ名前が両方にあった場合は、1回だけ表示されます。
3. UNION ALL(ユニオンオール)との違い
UNION ALLを使うと、重複データもそのまま残して表示します。件数を正確に数えたい場合や、同じデータがどの表に存在するのかを調べたいときに便利です。
SELECT 名前 FROM 社員
UNION ALL
SELECT 名前 FROM 顧客;
この場合は、同じ名前が両方に存在すると、結果にも2回表示されます。
4. 和(UNION)を使うときの注意点
和を使うときには、いくつかのルールがあります。
- 結合する表の列数が同じでなければならない。
- データ型が一致している必要がある。
- 列の並び順も一致していることが求められる。
例えば「社員ID」と「名前」を選んだ表と、「商品名」と「価格」を選んだ表をそのままUNIONすることはできません。両方のSELECT文が同じ形である必要があるのです。
5. 和(ワ)の具体例
和を実際の業務で使う場面を考えてみましょう。
- 社員とアルバイトの名簿をまとめて一覧にする。
- 顧客リストと見込み客リストをひとつにまとめる。
- 過去の売上データと現在の売上データを合体させて表示する。
このように、和を使えば複数のデータを簡単にひとつにまとめることができます。
6. 和と数学の集合との関係
数学で習う集合の和集合は「AとBの両方に含まれるすべての要素」を表します。データベースの和も同じ発想で、表Aと表Bのすべての行を組み合わせた新しい表を作ります。重複が取り除かれる点も、数学的な集合の性質と一致しています。
7. 和の歴史的背景
和の考え方は、1970年代に登場した関係データベース理論(カンケイデータベースリロン)に基づいています。提唱者であるエドガー・F・コッド(エドガーエフコッド)は、データを数学的な集合として扱えると示しました。この理論が基盤となり、現在のSQLにおけるUNIONが誕生しました。