SQL 개발자 자격증SQL 활용집계 뷰 갱신 불가난이도 3MCQ

SQL 개발자 자격증 집계 뷰 갱신 불가 기출문제 #20259

문제

다음은 뷰(View)를 생성하고 이를 조회/수정하는 과정이다. 실행 시 오류(Error)가 발생하는 쿼리는?

① SELECT * FROM V1 WHERE SS > 5000; ② SELECT A.DEPTNO, B.DNAME FROM V1 A JOIN DEPT B ON A.DEPTNO = B.DEPTNO; ③ SELECT DEPTNO, AVG(SS) FROM V1 GROUP BY DEPTNO; ④ INSERT INTO V1 (DEPTNO, SS) VALUES (50, 8000);

정답

4

해설

정답: 4. V1은 GROUP BY와 집계함수(SUM)로 정의된 뷰여서 각 행이 실제 기본 테이블의 단일 행과 1:1로 대응하지 않는다. 이런 그룹/집계 뷰는 갱신 불가능(non-updatable)하므로 INSERT/UPDATE/DELETE가 모두 오류를 낸다. SS는 SUM(SAL)의 결과일 뿐 실제 컬럼이 아니어서 값을 거꾸로 써넣을 수 없다.

오답 풀이

  • ①: 뷰를 단순 조회하며 별칭 SS로 필터링하는 정상 SELECT다.
  • ②: 뷰와 DEPT 테이블을 DEPTNO로 조인하는 정상 조회다.
  • ③: 뷰 결과를 다시 그룹·집계하는 정상 조회다(SELECT는 제약 없음).
  • ④: 정답. 집계·GROUP BY 뷰라 DML(INSERT)이 허용되지 않아 오류가 난다.

보충 개념 뷰가 갱신 가능하려면 기본적으로 단일 테이블 기반이며 GROUP BY·집계함수·DISTINCT·집합연산 등이 없어야 한다. 이런 요소가 들어간 뷰는 읽기 전용으로만 사용할 수 있다.

SQL 개발자 자격증 SQL 활용 다른 기출문제

SQL 개발자 자격증 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.