カテゴリ:

クエリ構文

SELECT

SELECT SELECT ステートメント内のステートメントと句の両方で使用できます。

  • ステートメントとして、 SELECT ステートメントは最も一般的に実行される SQL ステートメントです。データベースをクエリし、行のセットを取得します。

  • 句として、 SELECT はクエリによって返される列のセットを定義します。

構文

[ ... ]
SELECT [ { ALL | DISTINCT } ]
    {
          [{<object_name>|<alias>}.]*
        | [{<object_name>|<alias>}.]<col_name>
        | [{<object_name>|<alias>}.]$<col_position>
        | <expr>
        [ [ AS ] <col_alias> ]
    }
    [ , ... ]
[ ... ]

ステートメントとしての SELECT およびステートメント内の他の句の詳細については、 クエリ構文 をご参照ください。

パラメーター

ALL | DISTINCT

結果セットで重複排除を実行するかどうかを指定します。

  • ALL には、結果セットのすべての値が含まれます。

  • DISTINCT は、結果セットから重複した値を削除します。

デフォルト: ALL

*

アスタリスクは、指定されたオブジェクトのすべての列、または * がオブジェクト名またはエイリアスで修飾されていない場合、すべてのオブジェクトのすべての列を出力に含めることを示す略記です。

オブジェクト名 または . エイリアス

FROM 句で定義されているオブジェクト識別子またはオブジェクトエイリアスを指定します。

列名

FROM 句で定義されている列識別子を指定します。

$列の位置

FROM 句で定義されている列の位置(1ベース)を指定します。列がテーブルから参照される場合、この数はテーブル内の列の最大数を超えることはできません。

特定の行の特定の値に評価される数式などの式を指定します。

[ AS ] 列エイリアス

結果の式に割り当てられる列エイリアスを指定します。これは、最上位の SELECT リストの表示名、およびインラインビューの列名として使用されます。

使用上の注意

  • エイリアスと識別子はデフォルトで大文字と小文字を区別しません。大文字と小文字を保持するには、二重引用符(")で囲みます。

  • ORDER BY 句がない場合、 SELECT によって返される結果は順序付けられていないセットです。同じテーブルに対して同じクエリを繰り返し実行すると、毎回異なる出力順序になる可能性があります。順序が重要な場合は、 ORDER BY 句を使用します。

  • SELECT 独立したステートメントとしてだけでなく、例えば、 INSERT INTO ...など他のステートメントの一部としても使用できます。SELECT ...;.SELECT ステートメント内の サブクエリ でも使用できます。

いくつかの簡単な例を以下に示します。

クエリ構文 の詳細な説明を含む、ドキュメントの他の部分には多くの追加例が含まれています。

この例は、従業員の ID を知っている場合、従業員の姓を検索する方法を示しています。

SELECT last_name FROM employee_table WHERE employee_ID = 101;

この例では、各従業員と各従業員が勤務する部門の名前をリストします。出力は部門名の順になり、各部門内では従業員は名前の順になります。このクエリは、 JOIN を使用して、あるテーブルの情報を別のテーブルの情報に関連付けます。

SELECT department_name, last_name, first_name
  FROM employee_table INNER JOIN department_table
    ON employee_table.department_ID = department_table.department_ID
  ORDER BY department_name, last_name, first_name;

この例は、出力列を FROM 句のテーブルから直接取得する必要がないことを示しています。出力列は一般式にすることができます。この例では、出力に意味のある列名をつけるために列エイリアスを使用する方法も示しています。

-- Assuming that the radius of the circle is 2.0.
SELECT pi() * 2.0 * 2.0 AS area_of_circle;
-- or
SELECT pi() * POW(2.0, 2) AS area_of_circle;