“学生”表が次のSQL文で定義されているとき、検査制約の違反となるSQL文はどれか。
CREATE TABLE 学生 (学生番号 CHAR(5) PRIMARY KEY,
学生名 CHAR(16),
学部コード CHAR(4),
住所 CHAR(16),
CHECK (学生番号 LIKE ‘K%’))
学生
学生番号 |
学生名 |
学部コード |
住所 |
K1001 |
田中太郎 |
E001 |
東京都 |
K1002 |
佐藤一美 |
E001 |
茨城県 |
K1003 |
高橋肇 |
L005 |
神奈川県 |
K2001 |
伊藤香織 |
K007 |
埼玉県 |
|
ア |
DELETE FROM 学生 WHERE 学生番号 = ‘K1002’ |
イ |
INSERT INTO 学生 VALUES (‘J2002’, ‘渡辺次郎’, ‘M006’, ‘東京都’) |
ウ |
SELECT * FROM 学生 WHERE 学生番号 = ‘K1001’ |
エ |
UPDATE 学生 SET 学部コード = ‘N001’ WHERE 学生番号 LIKE ‘K%’ |
答え イ
【解説】
“学生”表を定義したSQL文で検査制約となるのは、“CHECK (学生番号 LIKE ‘K%’)”で、これは学生番号が‘K’から始まる4桁の文字列である必要ということなので、これに沿っていないのは
INSERT INTO 学生 VALUES (‘J2002’, ‘渡辺次郎’, ‘M006’, ‘東京都’)
(イ)です。
【キーワード】
・検査制約
【キーワードの解説】
- 検査制約(CHECK制約)
リレーショナルデータベースでテーブルにデータを追加・更新する際の制約の一つで、指定した条件を満たしたデータしか記録できないようにするものです。
もっと、「検査制約」について調べてみよう。
戻る
一覧へ
次へ
|