データベース

データベースは、データを効率的に保存し、管理、取得できるようにするためのシステムです。特に業務でよく使われるデータベースには、以下のようなものがあります。
・リレーショナルデータベース(RDBMS):データをテーブル形式で管理し、SQLという言語で操作します(例:MySQL、PostgreSQL、SQLite)
・NoSQLデータベース:テーブルではなく、ドキュメントやキーとバリューなどの形式でデータを管理します(例:MongoDB、Redis)
Q. 一方にしかないデータを取得するにはインナージョインとアウタージョインのどちらを使うか?
一方にしかないデータを取得するには、アウタージョイン(OUTER JOIN)を使用します。
通常、アウタージョインは左外部結合(LEFT OUTER JOIN)か右外部結合(RIGHT OUTER JOIN)で行います。
サンプル
例えば、TableAとTableBがあり、TableAにしか存在しないデータを取得したい場合、次のようにLEFT OUTER JOINを使用します。
SELECT *
FROM TableA
LEFT OUTER JOIN TableB ON TableA.id = TableB.table_a_id
WHERE TableB.table_a_id IS NULL;
このクエリは次のような動作になります
1. TableAを基準にTableBと結合し、両方のテーブルのデータを取得します。
2. WHERE TableB.table_a_id IS NULL の条件によって、TableBに対応するデータがない(NULLである)場合のTableAの行のみを取得します。
JOINの違い
・INNER JOIN:両方のテーブルに存在する共通のデータのみ取得します。片方にしかないデータは取得されません。
・LEFT OUTER JOIN:左側(最初に指定したテーブル)に存在するデータをすべて取得し、右側に存在しないデータはNULLとして返します。
・RIGHT OUTER JOIN:右側(2つ目に指定したテーブル)に存在するデータをすべて取得し、左側に存在しないデータはNULLとして返します。