문제
다음 중 아래와 같은 필드로 구성된
| 필드 이름 | 데이터 형식 |
|---|---|
| 등급 (기본 키) | 텍스트 |
| 비용 | 숫자 |
| 번호 | 숫자 |
① INSERT INTO SERVICE(등급, 비용) VALUES ('C', 7000); ② UPDATE SERVICE SET 등급 = 'C' WHERE 등급 = 'D'; ③ INSERT INTO SERVICE (등급, 비용, 번호) VALUES('A', 10000, 10); ④ UPDATE SERVICE SET 비용 = 비용*1.1;
정답
1번
해설
정답: 1. '등급'이 기본 키인데, 이미 'C' 등급 레코드가 존재하면 INSERT 시 기본 키 중복으로 실행할 수 없다. 기본 키는 중복·널 값을 허용하지 않으므로 ①은 적절하지 않다.
오답 풀이
- 1번: 기본 키인 '등급'에 중복 값('C')이 들어갈 수 있어 무결성 위반 위험이 있으므로 적절하지 않다.
- 2번: 'D' 등급을 'C'로 바꾸는 UPDATE는 문법상 정상 실행되므로 적절하다.
- 3번: 모든 필드에 값을 채우는 INSERT로 문법상 정상이므로 적절하다.
- 4번: 모든 레코드의 비용을 1.1배로 갱신하는 UPDATE로 정상이므로 적절하다.
보충 개념 기본 키(Primary Key)는 각 레코드를 고유하게 식별하므로 중복 값과 널 값을 허용하지 않는다. 기본 키 컬럼에 중복 값을 INSERT하면 무결성 제약으로 실패한다.