SQLの基本文(SELECT・INSERT・UPDATE・DELETE)とは?
SQLの基本文(SELECT・INSERT・UPDATE・DELETE)とは、SQLの基本4命令。SELECTはデータの検索、INSERTは新規データの追加、UPDATEは既存データの更新、DELETEはデータの削除を行う。WHERE句で対象行を絞り込み、JOINで複数テーブルを結合するのが基本パターン。応用情報ではこれらを組み合わせた集約・副問い合わせ・集合演算などが出題される。
応用情報技術者試験の過去問では15回出題されています(2016年度〜2025年度)。
えすきゅーえるのきほんぶん
SQLの基本文(SELECT・INSERT・UPDATE・DELETE)の意味
SQLの基本4命令。SELECTはデータの検索、INSERTは新規データの追加、UPDATEは既存データの更新、DELETEはデータの削除を行う。WHERE句で対象行を絞り込み、JOINで複数テーブルを結合するのが基本パターン。応用情報ではこれらを組み合わせた集約・副問い合わせ・集合演算などが出題される。
SQLの基本文(SELECT・INSERT・UPDATE・DELETE)の具体例
UPDATE 商品 SET 価格 = 価格 * 1.1 WHERE カテゴリ = '飲料' のように書けば、飲料カテゴリの商品だけ価格を1割上げられる。
SQLの基本文(SELECT・INSERT・UPDATE・DELETE)は試験でどう引っ掛けられる?
WHERE句を書き忘れたUPDATE・DELETEは全行が対象になる。またWHEREとHAVINGの適用時点が違い、グループ化の前に行を絞るのがWHERE、グループ化した後の集計結果で絞るのがHAVINGなので、COUNTやSUMの結果を条件にできるのはHAVINGだけ。DELETEは行を消す操作でDROPは表そのものを消す操作という違い、集約関数のCOUNT(*)は全行を数えるがCOUNT(列名)はNULLの行を数えないという違いも定番。
SQLの基本文(SELECT・INSERT・UPDATE・DELETE)と関連する用語
SQLの基本文(SELECT・INSERT・UPDATE・DELETE)が出た過去問
"サッカーチーム"表と"審判"表から、条件を満たす対戦を導出するSQL文のaに入れる字句はどれか。 〔条件〕 ・出場チーム1のチーム名は出場チーム2のチーム名よ…
正解:C.所属チーム名 NOT IN (A.チーム名, B.チーム名)
要点:複数値との不一致はNOT INで表す
審判は自分の所属チームが出場する対戦を担当できないので、審判の所属チーム名が出場チーム1と出場チーム2のどちらとも一致しないという条件が必要です。これは所属チーム名が2つのチーム名の集合に含まれないこと、すなわち NOT IN で簡潔に表せます。OR で結ぶと片方さえ違えば真になってしまい、自分のチームの対戦を担当する行が残ってしまいます。
出典:平成28年度 秋期 応用情報技術者試験 午前 問29(IPA)関係R(ID, A, B, C)のA, Cへの射影の結果とSQL文で求めた結果が同じになるように、aに入れるべき字句はどれか。ここで、関係Rを表Tで実現し、表T…
正解:DISTINCT
要点:関係代数の射影は重複を除くのでSQLではDISTINCTが要る
関係代数の射影は集合演算なので、結果に重複する行は現れない。一方SQLのSELECTは既定で重複行をそのまま返すため、A列とC列だけを取り出すと同じ値の組が複数出てしまう。重複を取り除くDISTINCTを指定することで、射影の結果と一致させられる。
出典:平成29年度 秋期 応用情報技術者試験 午前 問28(IPA)図のような関係データベースの“注文”表と“注文明細”表がある。“注文”表の行を削除すると、対応する“注文明細”表の行が、自動的に削除されるようにしたい。SQL文…
正解:CASCADE
要点:ON DELETE CASCADEは親行の削除を子行に連鎖させる
参照整合性制約では、参照先(親)の行が削除されたときの動作をON DELETE句で指定します。CASCADEを指定すると、削除が参照元(子)の行にも連鎖し、対応する行が自動的に削除されます。RESTRICTは逆に、参照している行が残っていれば親の削除自体を拒否します。
出典:令和1年度 秋期 応用情報技術者試験 午前 問27(IPA)RDBMSにおいて、特定の利用者だけに表を更新する権限を与える方法として、適切なものはどれか。
正解:GRANT文で許可する。
要点:表への権限付与はGRANT文、取消しはREVOKE文で行う
SQLのデータ制御言語(DCL)であるGRANT文は、指定した利用者やロールに対して表への SELECT・INSERT・UPDATE・DELETE などの権限を個別に与える。特定の利用者だけに更新権限を与えるにはGRANT文でUPDATE権限をその利用者に付与すればよく、取り消すときはREVOKE文を使う。
出典:令和1年度 春期 応用情報技術者試験 午前 問27(IPA)過去3年分の記録を保存している“試験結果”表から、2018年度の平均点数が600点以上となったクラスのクラス名と平均点数の一覧を取得するSQL文はどれか。ここで…
正解:SELECT クラス名, AVG(点数) FROM 試験結果 WHERE 受験年月日 BETWEEN '2018-04-01' AND '2019-03-31' GROUP BY クラス名 HAVING AVG(点数) >= 600
要点:行の絞り込みはWHERE、集約結果の絞り込みはHAVINGに書く
2018年度に限定するには受験年月日を2018年4月1日から2019年3月31日の範囲でWHERE句により行単位で絞り込む。そのうえでクラス名でGROUP BYし、グループ全体の集計値に対する条件はHAVING句に書く必要があるため、HAVING AVG(点数) >= 600 とする。
出典:令和1年度 春期 応用情報技術者試験 午前 問28(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。