InterBase クイック スタート:Part IV - SELECT の概要

提供: InterBase

InterBase クイック スタート:Part IV - データの抽出 へ戻る

SELECT 文の簡易版は次のようになります:

SELECT   [DISTINCT] columns
FROM     tables
WHERE    search_conditions
[GROUP BY COLUMN [HAVING   search_condition]]
[ORDER BY order_list]

上記の SELECT 文の構文には、主なキーワードが 7 つ含まれています。キーワードとそれに関連づけられる情報をまとめて、句 と呼びます。 上記構文での句は次の通りです:

説明

SELECT columns

抽出する列のリスト

DISTINCT

(任意)重複行を取り除くキーワード

FROM tables

値を検索するテーブルを識別

WHERE <search_conditions>

利用可能なすべての行のサブセットに制限した行を取得

GROUP BY column

指定された列の値に従って、取得した行をグループ化

HAVING <search_conditions>

GROUP BY 句で使用する検索条件を指定

ORDER BY <order_list>

SELECT 文の出力を、指定された列によって並び替え

SELECT 文の詳細については、「SELECT」を参照してください。

Image 025.jpg 一度に 2 つのテーブルからデータを取得する

このセクションでは、技術部を管理している人の名前と社員番号を取得します。 Department テーブルには、各部署のマネージャ番号(mngr_no)が保有されています。 そのマネージャ番号は、Employee テーブルにある社員番号(emp_no)と一致し、その社員番号のレコードには、姓、名があります。 WHEREこの 2 つのテーブルの対応するレコードをリンク付けするため、WHERE 句を使用して、一方の外部キー(mngr_no)が、 もう一方の主キー(emp_no)と等しいことを指定します。 主キーは一意であることが保証されているので、Employee テーブルで一意の一行を指定していることになります。 いずれのキーも、SELECT 句に入れなくても構いません。 この例では、参照する主キーは SELECT 句の一部ですが、外部キーはそうではありません。

  1. 次の文を入力してください:
    SELECT department,
           last_name,
           first_name,
           emp_no
    FROM   Department,
           Employee
    WHERE  department = 'Engineering'
           AND mngr_no = emp_no
    
  2. 結果、次の図のようになっていると思います。
    TutorialSelect.png

次は: