見出し画像

データベース超入門 -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]。

画像1

・自然結合:列名が一緒の列を用いて結合します。
・指定結合:異なる列名の列を用いて結合します。

テーブルを2つ準備した時に、交差して組み合わせる場合は、「交差結合」と呼びます。それ以外の組み合わせ、すなわち平行に組み合わせる場合は、縦方向では「集合」、横方向では「結合」とそれぞれ呼びます。次に集合と結合の中身について確認していきます。


2. 縦方向にくっつける呪文!

まずは集合から。海外のサイトで素敵な画像で紹介されていたので、こちらを用いて説明します[2]。

画像2

・UNION:和集合です。レコード同士を足します。
・INTERSECT:積集合です。重複するレコードを取り出します。
・MINUS:差集合です。重複するレコードは除きます。


3. 横方向にくっつける呪文!

次に結合です。こちらも海外のサイトで素敵な画像で紹介されていましたので、note用に一部修正して説明します[3]。

画像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 !