メインコンテンツへスキップ
高度試験共通令和7年度 春期午前I問 10

令和7年度 春期 高度試験共通 午前I 問10

難度標準

SQL 文に示す参照制約が存在する“商品”表と“受注”表とがある。“商品”表の行を削除したとき、削除した行の商品コードと同じ値の商品コードをもつ“受注”表の行を自動的に削除する SQL文として、aに入れる字句はどれか。〔SQL文〕CREATE TABLE 商品(商品コード CHAR(4) PRIMARY KEY,商品名 VARCHAR(64))CREATE TABLE 受注(受注番号 INTEGER PRIMARY KEY,商品コード CHAR(4),受注個数 INTEGER,納品日 CHAR(8),FOREIGN KEY(商品コード) REFERENCES 商品(商品コード)ON DELETE a)

〔SQL文〕

CREATE TABLE 商品 (

商品コード CHAR(4) PRIMARY KEY,

商品名 VARCHAR(64)

)

CREATE TABLE 受注 (

受注番号 INTEGER PRIMARY KEY,

商品コード CHAR(4),

受注個数 INTEGER,

納品日 CHAR(8),

FOREIGN KEY (商品コード) REFERENCES 商品(商品コード)

ON DELETE [ a ]

)

選択肢

解説

結論 → 詳細 → 補足 の 3 層構成

展開
解説Layer 1

参照制約のON DELETE CASCADEは、親テーブルの行が削除された際に、その行を参照している子テーブルの行も自動的に削除する機能である。問題文の「削除した行の商品コードと同じ値の商品コードをもつ“受注”表の行を自動的に削除する」という要件に合致するため、aにはCASCADEが入る。

各選択肢の解説

ア

CASCADE

正しいです。ON DELETE CASCADEを指定すると、参照される“商品”表の行が削除されたとき、その商品コードを外部キーとして参照する“受注”表の行も連鎖的に自動削除されます。問題の要件どおりの動作です。

イ

RESTRICT

誤りです。ON DELETE RESTRICTは、“受注”表にその商品コードを参照する行がある限り、“商品”表の行の削除自体を拒否してエラーにします。受注行を自動削除する動作とは逆です。要件を満たすには、aをCASCADEに直して連鎖削除させる必要があります。

ウ

SET DEFAULT

誤りです。ON DELETE SET DEFAULTは、“商品”行を削除したとき、参照していた“受注”行の商品コードを列の既定値に置き換えます。受注行そのものは削除されずに残ります。受注行を自動削除するには、aをCASCADEに直す必要があります。

エ

SET NULL

誤りです。ON DELETE SET NULLは、“商品”行を削除したとき、参照していた“受注”行の商品コード列をNULLにします。受注番号や受注個数を含む受注行自体は残るので、要件の自動削除になりません。aをCASCADEに直せば、受注行も連鎖的に削除されます。

この解説は?
AI生成

解説は公式の問題文・公式解答を基に作成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ずリンク先の公式資料でご確認ください。

最終更新:

検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

分野「データベース」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
正規化・SQL・トランザクション特性(ACID)・同時実行制御・分散DBの基本。
学習の進め方
ER 図 ⇄ 関係スキーマ ⇄ SQL の3者を行き来できるよう演習。3NF までの正規化を手で実行できると強い。
関連キーワード
正規化SQLACIDトランザクションロックデッドロックER図
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

関連する問題

データベース の他の問題

他年度の「データベース」問題

高度試験共通 の同じ分野を年度をまたいで演習する

高度試験共通 の学習ガイド