システム開発

Web System

hero

データベース

 

データベースは、データを効率的に保存し、管理、取得できるようにするためのシステムです。特に業務でよく使われるデータベースには、以下のようなものがあります。

リレーショナルデータベース(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として返します。