개발 일기
SQL의 VIEW(뷰)에 대해서 알아보자! (feat. 기타 스키마 객체) 본문
안녕하세요!!
오늘은 SQL의 기타 스키마 객체중 VIEW(뷰)에 대해 공부해보겠습니다.
VIEW(뷰)란?
- 테이블 또는 다른 뷰를 기초로 하는 논리적 테이블
- 뷰는 그 자체로서 소유하는 데이터는 없지만, 창문처럼 창문을 통해 어떤 데이터를 보거나 변경할 수 있다.
- 뷰에서 참조하는 테이블을 기본 테이블(Base Table)이라고 한다.
VIEW(뷰)의 사용 목적
- 데이터베이스에서 선택적으로 데이터를 보여줄 수 있기 때문에, 데이터베이스에 대한 접근을 제한 할 수 있다.
- 복잡한 질의로부터 결과를 검색하기 위한 단순한 질의를 만들 수 있다.
- 사용자와 애플리케이션 프로그램에 대한 데이터 독립성을 제공한다.
- 하나의 뷰는 여러개의 테이블로부터 데이터를 검색하는데 사용 가능하다.
VIEW(뷰)의 작성 시 주의 할 점
- subquery는 조인, set 연산, 서브쿼리가 포함된 복잡한 SELECT 문이 정의 가능하다.
- subquery에는 ORDER BY 절을 사용 할 수 없다. ORDER BY를 사용하려면 검색 시 뷰에 기술한다.
- VIEW를 수정하기 위해서는 CREATE OR REPLACE를 이용한다.
- CREATE VIEW 권한을 가져야 뷰를 생성 할 수 있다.
=> 권한 부여 SQL : GRANT CREATE VIEW TO SCOTT;
VIEW(뷰) 작성 예시
1. 단순 VIEW(테이블 1개)
2. 복합 VIEW(테이블 여러개)
VIEW(뷰)에서 DML 작업
- 단순 뷰에서 DML 연산을 수행 가능하다.
- 뷰가 다음을 포함한다면 행을 제거할 수 없다.
- 그룹함수
- GROUP BY 절
- DISTINCT 키워드
- 뷰가 다음을 포함한다면 데이터를 수정할 수 없다.
- 위의 임의의 조건
- ROWNUM 의사열
- 표현식으로 정의된 열 (예 : SAL * 12)
- 뷰가 다음을 포함한다면 데이터를 추가할 수 없다.
- 위의 임의의 조건
- 뷰에 의해 선택되지 않은 NOT NULL열이 기본 테이블에 있을 때
VIEW(뷰) DML 작성 예시
1. INSERT(PK 컬럼 포함 유/무에 따른 비교)
2. UPDATE
3. DELETE
VIEW에 대해서 공부했습니다.
감사합니다.
'SQL' 카테고리의 다른 글
SQL의 SEQUENCE(시퀀스)에 대해서 알아보자! (feat. 기타 스키마 객체) (0) | 2021.07.20 |
---|---|
SQL의 Constraint(제약조건)에 대해 알아보쟈! (0) | 2021.07.19 |
SQL DDL(데이터 정의어)의 CREATE, DROP 공부(feat. SQL의 데이터 타입) (0) | 2021.07.17 |
SQL의 DML(Data Manipulation Language)에 대해 알아보자 (0) | 2021.07.15 |
SQL의 set 알아보기! (feat. 집합연산자, union, intersect, minus) (0) | 2021.07.14 |