문제
다음 DDL과 DML 실행 후 STUDENT 테이블의 최종 레코드 수는?
SQLCREATE TABLE STUDENT ( STU_ID INT PRIMARY KEY, STU_NAME VARCHAR(50) NOT NULL, AGE INT CHECK(AGE BETWEEN 18 AND 30), EMAIL VARCHAR(100) UNIQUE );
SQLINSERT INTO STUDENT VALUES(1, 'KIM', 25, 'kim@test.com'); INSERT INTO STUDENT VALUES(2, 'LEE', 17, 'lee@test.com'); INSERT INTO STUDENT VALUES(3, 'PARK', 22, NULL); INSERT INTO STUDENT VALUES(4, 'CHOI', 28, 'kim@test.com'); INSERT INTO STUDENT VALUES(5, NULL, 20, 'choi@test.com'); INSERT INTO STUDENT VALUES(6, 'JUNG', 25, 'jung@test.com');
① 2건 ② 3건 ③ 4건 ④ 6건
정답
2번
해설
각 INSERT문을 분석하면: ① 1번: 성공 (모든 제약조건 만족). ② 2번: 실패 (CHECK 제약조건 위반, AGE=17은 18~30 범위를 벗어남). ③ 3번: 성공 (EMAIL이 NULL이지만 UNIQUE 제약조건은 NULL 허용). ④ 4번: 실패 (UNIQUE 제약조건 위반, 'kim@test.com'이 1번과 중복). ⑤ 5번: 실패 (NOT NULL 제약조건 위반, STU_NAME이 NULL). ⑥ 6번: 성공 (모든 제약조건 만족). 따라서 1번, 3번, 6번만 성공하여 총 3건이 삽입됩니다.