다음 SQL문을 통해 ‘department’와 ‘student’ 테이블을 생성하고 투플을 추가한 후 (가), (나) 문을 실행한 결과에 대한 설명으로 옳은 것은?
CREATE TABLE department (
dcode CHAR(5) NOT NULL,
dename VARCHAR(20),
PRIMARY KEY(dcode));
CREATE TABLE student (
sno INT NOT NULL,
dept CHAR(5),
PRIMARY KEY(sno),
FOREIGN KEY(dept) REFERENCES department(dcode)
ON DELETE CASCADE);
INSERT INTO department VALUES ('D1', 'Computer');
INSERT INTO department VALUES ('D2', 'AI');
INSERT INTO department VALUES ('D3', 'Electronics');
INSERT INTO student VALUES (100, 'D1');
INSERT INTO student VALUES (200, 'D1');
INSERT INTO student VALUES (300, 'D2');
INSERT INTO student VALUES (400, 'D3');
DELETE FROM student WHERE dept = 'D1'; -- (가)
DELETE FROM department WHERE dcode = 'D3'; -- (나)- ①(가) 문장은 정상적으로 실행되나 (나) 문장은 오류가 발생하고 실행되지 않는다.
- ②(나) 문장은 정상적으로 실행되나 (가) 문장은 오류가 발생하고 실행되지 않는다.
- ③(가), (나) 문장은 실행되며 그 결과 ‘department’와 ‘student’ 테이블의 투플 수는 각각 2개, 1개이다.
- ④(가), (나) 문장은 실행되며 그 결과 ‘department’와 ‘student’ 테이블의 투플 수는 각각 2개, 2개이다.
선지를 골라 바로 채점해 보세요.
정답 ③
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)