メインコンテンツへスキップ
データベーススペシャリスト2010年度 春期午前II3

2010年度 春期 データベーススペシャリスト 午前II3

難度標準

表Rに、(A,B)の2列でユニークにする制約(UNIQUE 制約)が定義されているとき、表 R に対する SQL 文でこの制約の違反となるものはどれか。ここで、表Rには主キーの定義がなく、また、すべての列は値が決まっていない場合(NULL)もあるものとする。

選択肢

DELETE FROM R WHERE A = 'AA01' AND B = 'BB02'
INSERT INTO R VALUES ('AA01' , NULL , 'DD01' , 'ΕΕ01')
INSERT INTO R VALUES (NULL , NULL , 'ΑΑ01' , 'BB02')
UPDATE R SET A = 'AA02' WHERE A = 'ΑΑ01'

解説

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

展開
結論Layer 1

エが正解となるのは、UNIQUE制約の定義とSQLのUPDATE文の挙動に基づいています。UNIQUE制約は、指定された列の組み合わせに対して重複する値を許容しません。UPDATE文でA列の値を変更する際、もし変更後の値 'AA02' が既にRテーブルに存在し、かつB列の値も同じであれば、UNIQUE制約に違反します。問題文では「すべての列は値が決まっていない場合(NULL)もある」とありますが、UNIQUE制約においては、NULL値の扱いはデータベースシステムに依存することが一般的です。しかし、たとえNULLが許容されるとしても、'AA02' と対応するBの値の組み合わせが既に存在する場合は違反となります。

詳細Layer 2

アは、指定されたAとBの値を持つ行を削除するため、UNIQUE制約に影響を与えず、違反にはなりません。イは、A列に 'AA01' を、B列にNULLを挿入しています。NULLは重複しないとみなされる場合が多く、また、B列はUNIQUE制約の対象ですが、A列は単独ではUNIQUE制約が定義されていないため、このINSERT文単体では制約違反とはなりません。ウは、A列とB列にNULLを挿入しています。NULLは重複しないとみなされることが多いため、このINSERT文単体でUNIQUE制約に違反する可能性は低いと考えられます。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

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

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「SQL」の学習ポイント

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

何が問われるか
本問の分野で問われる代表的な知識・用語の整理。
学習の進め方
正解/誤答の選択肢ごとに「なぜ正しい / なぜ違うのか」を1行ずつ言語化すると定着する。
この分野の問題をもっと解く
AI コパイロット

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

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

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

SQL の他の問題