情報処理のWeb教科書―IPA情報処理試験対策のお供に!
トップ 情報処理の知識体系 テクノロジ系 技術要素 データベース データ操作 データベース言語 SQL データ操作言語(DML) SELECT文
SELECT文は、要求されるデータを選択するSQL文です。SQLのSELECT文による問合せの方法、SELECT文の書き方についてまとめています。
このページの目次です。
SELECT文は、SQLのデータ操作言語(DML)に分類される文でリレーショナルデータベースからデータの抽出を行います。
以下の表を例にSELECT文の書き方について見ていきます。
SELECTの直後に抽出する表の項目名を記述し、そのあとにFROMで対象テーブルを指定します。
たとえば「サッカーチーム表からチーム名の項目を抽出する」という文は以下になります。
例)SELECT チーム名 FROM サッカーチーム;
SELECTで条件指定する場合はWHERE句をFROMの後に指定します。
たとえば「○○の条件でサッカーチーム表からチーム名の項目を抽出する」という文は以下になります。
例)SELECT チーム名 FROM サッカーチーム WHERE ○○;
SELECT文で複数のテーブルを結合してデータを抽出する場合はFROM句の後にカンマ区切りで複数のテーブルを指定します。 この指定はINNER JOINという内部結合になります。 複数の表を結合した場合、表名.項目名という形式で項目名を指定します。
たとえば「サッカーチーム表と審判表を結合して、○○の条件でチーム名と氏名を抽出する」という文は以下になります。
例)SELECT サッカーチーム.チーム名, 審判.氏名 FROM サッカーチーム, 審判 WHERE ○○;
SELECT文で別名を利用する場合はASを使用します。
たとえば「サッカーチーム表(A)と審判表(B)を結合して、○○の条件でチーム名と氏名を抽出する」という文は以下になります。
例)SELECT A.チーム名, C.氏名 FROM サッカーチーム AS A, 審判 AS C WHERE ○○;
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を使います。
EXISTSの例は上述の例になりますのでNOT EXISTSの例を見ていきます。 たとえば「<SELECT文>のテータがない場合はサッカーチーム表からチーム名の項目を抽出する」という文は以下になります。
例)SELECT チーム名 FROM サッカーチーム WHERE NOT EXISTS (<SELECT文>);
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.チーム名);
以下ではSELECT文に関連したIPA情報処理試験の過去問とその解説をまとめています。
関係データベースのデータの操作を理解するにはデータベース言語(SQL)の知識が必要です。 データベース言語(SQL文)についての入門講座をコンセプトにオリジナルテキストと情報処理試験の過去問もまとめています。
データベースの方式、設計、データ操作、トランザクション処理、応用など。データベース関連のオリジナルテキストと情報処理試験の過去問もまとめています。
情報処理試験対策用のサイトオリジナル教科書をテーマにテクノロジ系の知識をまとめています。
SQLの読み方はエスキューエル。SQLの意味、初心者向けのすっごく簡単な説明、など。SQLとは何かをまとめています。
Copyright (C) 2010-2023 情報処理のWeb教科書. All Rights Reserved. Loarding…