“BUSHO”表と“SHAIN”表があり,“SHAIN”表は次のSQL文で定義されている。
CREATE TABLE SHAIN
(S_CODE CHAR(3) PRIMARYKEY,
S_NAMEN CHAR(3),
BU_CODE CHAR(3),
S_AGE DECIMAL(2),
FOREIGN KEY(BU_CODE) REFERENCE SBUSHO,
CHECK(S_AGE BETWEEN 18 AND 60))
また,“BUSHO”表と“SHAIN”表には現在次のようなデータが格納されている。
BUSHO
BU_CODE | BU_NAME |
B01 | 人事部 |
B02 | 総務部 |
B03 | 経理部 |
SHAIN
S_CODE | S_NAME | BU_CODE | S_AGE |
111 | 山田 | B02 | 60 |
122 | 川上 | B03 | 55 |
233 | 田中 | B01 | 35 |
259 | 岡本 | B02 | 34 |
このとき,“SHAIN”表に追加可能なタプルとして,適切なものはどれか。
| S_CODE | S_NAME | BU_CODE | S_AGE |
ア | 012 | 山田 | B03 | 60 |
イ | 111 | 山田 | B02 | 55 |
ウ | 320 | 山本 | B04 | 34 |
エ | 920 | 山下 | B03 | 17 |
若干難易度も高くCREATE文についても解説していないのでヒントです。
・CREATE文はテーブルを作成するSQLです。
・PRIMARYKEYは主キーで重複した値を認められません。
・REFERENCEは外部で主キーとして定義されている値で、外部テーブルに無い値は認められません。
・CHECKにある条件を満たしていないと表にデータを保存することが出来ません。
正解
ア
解説
S_CODEにPRIMARYKEYが指定されているのでイは重複キーになる。
REFERENCEで外部キーに指定されているBU_CODEがB04は存在しないのでウは追加できない。
残りのうち、S_AGE BETWEEN 18 AND 60の条件に合うものはアだけになるので、答えはアとなります。