6. 정리
뷰는 데이터를 복사해두지 않고 SELECT 문을 이름 붙여 저장한 것으로, 조인·집계로 만든 복잡한 쿼리를 감추거나 특정 컬럼만 보여줘 보안에 쓸 수 있습니다. CREATE OR REPLACE VIEW 로 정의를 바꾸고, 실제 DB 는 테이블 하나만 참조하고 집계가 없는 뷰에 한해 UPDATE·INSERT 를 허용합니다.
WITH CHECK OPTION 으로 뷰 조건을 벗어나는 변경을 막을 수 있습니다. H2 2.3.232 는 뷰를 통한 DML 과 WITH CHECK OPTION 문법을 아예 지원하지 않아, 이 레슨의 해당 예제는 모두 "H2 미지원, 문법 검토만"입니다.
SEQUENCE 는 START WITH·INCREMENT BY·CACHE 로 정의하고 NEXT VALUE FOR나 seq.NEXTVAL 로 다음 번호를 뽑습니다. IDENTITY 컬럼은 GENERATED ALWAYS(직접 지정 불가)와 GENERATED BY DEFAULT(지정 가능)로 나뉩니다. 롤백·캐시는 구멍을 만들어 "빈 번호 없는 연속 번호"는 보장할 수 없습니다.
DB 별로는 Oracle·Tibero 의 seq.NEXTVAL·CURRVAL, MySQL 의 AUTO_INCREMENT·LAST_INSERT_ID(), MSSQL 의 IDENTITY·SCOPE_IDENTITY()·2012 부터의 SEQUENCE 가 서로 다른 이름과 세션 범위를 가진다는 점이 이 레슨의 핵심입니다.