データベース超入門 -6|UNION! JOIN! RDBMSにおけるテーブル操作の呪文について
今回はRDBMSにおいてテーブルを組み合わせるための呪文についてまとめていきます。現実にはSQL文が必要となりますが、ここでは概念のみ抑えていきます。SQLを知りたい人間さんは、例えば下記のnoteなどからスタートしてみるのはいかがでしょうか。ふんわり!
前回までのnoteはマガジンにまとめました。ご興味がある人間さんはそちらをご覧になってください。
それでは順番に確認していきましょう。
( ※ It's about 1200 words, so you'll be able to read it in 4minutes. )
1. まずは組み合わせの全体感を確認します
以前も紹介した上記の書籍に綺麗に1つにまとまっている図があったので、note用に一部修正して引用します[1]。
・自然結合:列名が一緒の列を用いて結合します。
・指定結合:異なる列名の列を用いて結合します。
テーブルを2つ準備した時に、交差して組み合わせる場合は、「交差結合」と呼びます。それ以外の組み合わせ、すなわち平行に組み合わせる場合は、縦方向では「集合」、横方向では「結合」とそれぞれ呼びます。次に集合と結合の中身について確認していきます。
2. 縦方向にくっつける呪文!
まずは集合から。海外のサイトで素敵な画像で紹介されていたので、こちらを用いて説明します[2]。
・UNION:和集合です。レコード同士を足します。
・INTERSECT:積集合です。重複するレコードを取り出します。
・MINUS:差集合です。重複するレコードは除きます。
3. 横方向にくっつける呪文!
次に結合です。こちらも海外のサイトで素敵な画像で紹介されていましたので、note用に一部修正して説明します[3]。
・INNER JOIN:内部結合です。共通するレコードだけを対象として、カラムを増やします。
・LEFT JOIN:外部結合です。左のテーブルを基準として、右のテーブルの中で共通するレコードだけを対象にカラムを増やします。
・RIGHT JOIN:上記の逆です。右のテーブルを基準とします。
・FULL OUTER JOIN:全てのテーブルのレコードを保持して、カラムを増やします。
LEFTだけでいいのでは?と思うかもしれませんが、3つ以上のテーブルがある場合に、結果が変わるので、RIGHTも必要となります。
4. 結論
「呪文なら知っています。Wingardium Leviosa!」(違うそうじゃない)
今回はRDBMSにおけるテーブル操作の概要について説明しました。本シリーズは一旦ここまでとします。もっと、データベースについて学びたい人間さんは入門書を読んだり、noteでSQLなどに関する記事を探したりすることをオススメします。また、正規化やトランザクションなどのキーワードについても理解を深めるとよいでしょう。ちなみに、MySQLについてはメモの意味を込めて、後日作成するかもしれません。
以上、データベース超入門 -6 でした。
----------------------------------------------------------
REFERENCE
[1] 小笠原種高. なぜがわかるデータベース. 翔泳社, 2018, p98.
[2] edureka! HP, “SQL Commands – A Beginner’s Guide To SQL”, https://www.edureka.co/blog/sql-commands/ (accessed May 5, 2020).
[3] EXPERTASSIGNMENTHELP HP, “MYSQL Concepts – Where, In, Having & Join Clauses Made Easy”, https://expertassignmenthelp.com/mysql-concepts-where-in-having-join-clauses-made-easy-2/ (accessed May 5, 2020).
※画像は「PIYOTASO(ぴよたそ)」さんのイラスト使用しています。
Thanks for the support !