Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발 일기

SQL의 VIEW(뷰)에 대해서 알아보자! (feat. 기타 스키마 객체) 본문

SQL

SQL의 VIEW(뷰)에 대해서 알아보자! (feat. 기타 스키마 객체)

개발 일기 2021. 7. 19. 22:51

안녕하세요!!

 

오늘은 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개)

dept 테이블에서 deptno=10의 deptno, dname, loc를 가진 dept_view 뷰 생성

 

2. 복합 VIEW(테이블 여러개)

emp 테이블과 dept 테이블을 조인하여 emp_dept_view 뷰 객체 생성

 


 

VIEW(뷰)에서 DML 작업

 - 단순 뷰에서 DML 연산을 수행 가능하다.

 - 뷰가 다음을 포함한다면 행을 제거할 수 없다.

   - 그룹함수

   - GROUP BY 절

   - DISTINCT 키워드

 - 뷰가 다음을 포함한다면 데이터를 수정할 수 없다.

   - 위의 임의의 조건

   - ROWNUM 의사열

   - 표현식으로 정의된 열 (예 : SAL * 12)

 - 뷰가 다음을 포함한다면 데이터를 추가할 수 없다.

   - 위의 임의의 조건

   - 뷰에 의해 선택되지 않은 NOT NULL열이 기본 테이블에 있을 때

 

 

VIEW(뷰) DML 작성 예시

 

1. INSERT(PK 컬럼 포함 유/무에 따른 비교)

PK(empno)컬럼을 지정한 테이블과 지정하지 않은 테이블 두가지 생성

 

PK가 설정되지 않은 데이터는 insert 시 오류남(61번 라인)

 

2. UPDATE

emp_view 뷰에서 empno=8989의 sal 값 업데이트

 

3. DELETE

emp_view 뷰에서 empno=8989 delete

 

 

VIEW에 대해서 공부했습니다.

 

감사합니다.

Comments