Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

FROM句(フロムク)とは | 意味や読み方など丁寧でわかりやすい用語解説

FROM句(フロムク)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

フロム句 (フロムク)

英語表記

FROM clause (フロム・クローズ)

用語解説

FROM句とは、SQL(Structured Query Language)におけるSELECT文の必須要素の一つで、データを取り出す対象となるデータソースを指定する役割を持つ。データベースからどのような情報を取得するかを決定するSELECT句に対し、FROM句は「どこから」その情報を取得するかを明確にする、データの検索処理における出発点となる重要な句である。

FROM句は、SQLクエリがどのテーブルやビューからデータを読み込むべきかをデータベースシステムに指示する。最も基本的な形では、単一のテーブル名を指定し、そのテーブルに格納されている全データ、またはSELECT句で指定された列のデータを取得する。たとえば、「社員」テーブルから社員情報を取得したい場合、「SELECT * FROM 社員;」のように記述し、「社員」テーブルがデータの源泉となる。このシンプルな形式から始まり、FROM句はより複雑なデータ取得シナリオにおいて、その真価を発揮する。

特に、複数のテーブルに分散している関連する情報を組み合わせて一つの結果として表示したい場合に、FROM句は重要な役割を果たす。この目的のために、FROM句内では「結合(JOIN)」操作が頻繁に用いられる。結合は、指定された複数のテーブル間に定義された関連性(キー)に基づいて行を組み合わせる機能である。

代表的な結合の種類には、内部結合(INNER JOIN)、外部結合(LEFT JOIN, RIGHT JOIN, FULL JOIN)、クロス結合(CROSS JOIN)などがある。

内部結合(INNER JOIN)は、結合条件を満たす両方のテーブルの行のみを結果として返す。これは、共通のキーを持つレコードだけを組み合わせたい場合に利用される。例えば、「社員」テーブルと「部署」テーブルがあり、それぞれのテーブルに共通の「部署ID」という列が存在する場合、INNER JOINとON句(結合条件)を使って「部署ID」が一致する社員と部署の情報を結合し、表示することができる。

外部結合は、一方のテーブルのすべての行を含めつつ、もう一方のテーブルで一致する行がある場合はその情報を付加し、一致する行がない場合はNULLを埋めて結果を返す。LEFT JOINはFROM句で先に指定したテーブル(左側のテーブル)のすべての行を含み、RIGHT JOINは後に指定したテーブル(右側のテーブル)のすべての行を含む。たとえば、LEFT JOINを使って「すべての社員について、所属部署があればその部署情報も表示し、まだ部署が決まっていない社員(部署IDがNULLなど)の情報も漏らさずに表示する」といった要件に対応できる。FULL JOINは、両方のテーブルのすべての行を含み、一致しない部分はNULLで埋められる。これは、どちらか一方にしか存在しない情報もすべて取得したい場合に利用されるが、一般的にはLEFT JOINやRIGHT JOINの方が使用頻度が高い。

クロス結合(CROSS JOIN)は、FROM句で指定された二つのテーブルのすべての行の組み合わせを結果として返す。つまり、一つ目のテーブルの各行が、二つ目のテーブルのすべての行と結合されるため、結果として返される行数は「一つ目のテーブルの行数 × 二つ目のテーブルの行数」となる。これはデカルト積とも呼ばれ、意図しない大量のデータを生成することがあるため、使用には注意が必要である。

これらの結合操作において、結合条件を指定するON句やUSING句もFROM句の一部として記述される。ON句は、より柔軟な条件を指定でき、特定の列が等しい場合に限らず、様々な比較演算子や論理演算子を用いて複雑な条件を設定できる。USING句は、結合する両方のテーブルに同じ名前の列が存在する場合に簡潔に条件を記述できる。

さらにFROM句は、既存のテーブルやビューだけでなく、一時的な結果セットをデータソースとして扱うことも可能にする。これを「サブクエリ(派生テーブル)」と呼ぶ。FROM句内でSELECT文を記述し、そのSELECT文の結果をあたかも一つのテーブルのように扱い、さらにそこからデータを取得したり、別のテーブルと結合したりできる。これにより、複雑な集計や段階的なデータ処理を実現し、可読性の高いクエリを作成する手助けとなる。サブクエリをFROM句で使用する場合、その一時的な結果セットには必ずエイリアス(別名)を付ける必要がある。

テーブルエイリアスもFROM句で頻繁に利用される機能である。長いテーブル名を簡潔なエイリアスに置き換えることで、クエリ全体の可読性を向上させ、記述量を減らすことができる。また、一つのテーブルを自身と結合する自己結合を行う際には、同じテーブルに異なるエイリアスを付けることで、それぞれの参照を区別し、正しく結合条件を記述するために不可欠となる。

このようにFROM句は、データベースからデータを取得する際の基本的な源泉の指定から始まり、複数のデータソースを結合して関連情報を統合したり、一時的な結果セットを生成して複雑な処理を行うなど、SQLクエリの柔軟性と表現力を大幅に高める、非常に多機能で重要な役割を担っている。システムエンジニアにとって、FROM句を深く理解することは、効率的で正確なデータ操作を実現する上で不可欠な知識となる。

関連コンテンツ