情報処理のWeb教科書―IPA情報処理試験対策のお供に!

SELECT文―SQLのSELECT文の書き方

トップ 情報処理の知識体系 テクノロジ系 技術要素 データベース データ操作 データベース言語 SQL データ操作言語(DML) SELECT文

SELECT文は、要求されるデータを選択するSQL文です。SQLのSELECT文による問合せの方法、SELECT文の書き方についてまとめています。

▲記事トップへ

目次

このページの目次です。

1. SELECT文とは

2. SELECT文の構文

3. SELECT文に関連したIPA情報処理試験の過去問

もっと知識を広げるための参考

更新履歴

1. SELECT文とは

SELECT文は、SQLのデータ操作言語(DML)に分類される文でリレーショナルデータベースからデータの抽出を行います。

2. SELECT文の書き方

以下の表を例にSELECT文の書き方について見ていきます。

平成28年秋 問29 条件を満たす対戦を導出するSQL文―応用情報技術者 午前

SELECT文の基本―SELECT FROM

SELECTの直後に抽出する表の項目名を記述し、そのあとにFROMで対象テーブルを指定します。

たとえば「サッカーチーム表からチーム名の項目を抽出する」という文は以下になります。

例)SELECT チーム名 FROM サッカーチーム;

SELECT文に条件を指定する―WHERE

SELECTで条件指定する場合はWHERE句をFROMの後に指定します。

たとえば「○○の条件でサッカーチーム表からチーム名の項目を抽出する」という文は以下になります。

例)SELECT チーム名 FROM サッカーチーム WHERE ○○;

SELECT文で複数のテーブルを結合してデータを抽出する

SELECT文で複数のテーブルを結合してデータを抽出する場合はFROM句の後にカンマ区切りで複数のテーブルを指定します。 この指定はINNER JOINという内部結合になります。 複数の表を結合した場合、表名.項目名という形式で項目名を指定します。

たとえば「サッカーチーム表と審判表を結合して、○○の条件でチーム名と氏名を抽出する」という文は以下になります。

例)SELECT サッカーチーム.チーム名, 審判.氏名 FROM サッカーチーム, 審判 WHERE ○○;

SELECT文で別名を利用する―AS

SELECT文で別名を利用する場合はASを使用します。

たとえば「サッカーチーム表(A)と審判表(B)を結合して、○○の条件でチーム名と氏名を抽出する」という文は以下になります。

例)SELECT A.チーム名, C.氏名 FROM サッカーチーム AS A, 審判 AS C WHERE ○○;

SELECT文の中でさらにSELECT文を利用する―副問い合わせ

SELECT文の中でSELECT文が利用できます。これを副問い合わせといいます。

たとえば「<SELECT文>のテータがある場合はサッカーチーム表からチーム名の項目を抽出する」という文は以下になります。

例)SELECT チーム名 FROM サッカーチーム WHERE EXISTS (<SELECT文>);

副問合せとは

副問合せとは、SELECT文の条件の中でSELECT文を入れ子にして指定するSQL文のことを言います。

その他の副問合せの例

“社員”表から、男女それぞれの最年長社員を除くすべての社員を取り出す副問い合わせを用いたSQL文の例です。 “社員”表は次の構造とし、下線部は主キーを表します。

社員(社員番号, 社員名, 性別, 生年月日)

SELECT 社員番号, 社員名 FROM 社員 AS S1
          WHERE 生年月日 > (SELECT MIN(生年月日) FROM 社員 AS S2 GROUP BY S2.性別)

生年月日は、小さい方が年齢が高い点に注意します。 副問合せの部分では、一つ目の社員表(S1表)の社員と性別が同じで最年長の社員を抽出します。

二つ目の社員表(S2表)から一つ目の社員表(S1表)の社員と性別が同じ社員を抽出して、一番年齢が高いMIN(生年月日)を抽出しています。

SELECT文でデータ有無の判定―EXISTS、NOT EXISTS

SELECT文で副問い合わせの結果がある場合、ない場合に抽出を行うといった操作を行う場合はEXISTS、NOT EXISTSを使います。

EXISTSの例は上述の例になりますのでNOT EXISTSの例を見ていきます。 たとえば「<SELECT文>のテータがない場合はサッカーチーム表からチーム名の項目を抽出する」という文は以下になります。

例)SELECT チーム名 FROM サッカーチーム WHERE NOT EXISTS (<SELECT文>);

SELECT文の条件で値を指定する―IN

SELECT文の条件で値を指定する場合IN句が使用できます。

たとえ[条件]で取得するSQLは以下になります。

[条件]

例)SELECT A.チーム名 AS 出場チーム 1, B.チーム名 AS 出場チーム 2, C.氏名 AS 審判氏名 FROM サッカーチーム AS A, サッカーチーム AS B, 審判 AS C WHERE A.チーム名 < B.チーム名 AND C.所属チーム名 NOT IN (A.チーム名, B.チーム名);

3. SELECT文に関連したIPA情報処理試験の過去問

以下ではSELECT文に関連したIPA情報処理試験の過去問とその解説をまとめています。

もっと知識を広げるための参考

更新履歴

戻る

スポンサーリンク

情報処理の知識体系

各試験の問題と解説

ランダム出題・採点アプリ

プログラミング

スポンサーリンク