본문 바로가기
정보처리기사 실기/데이터베이스

SQL - VIEW

by 밍구몬 2018. 9. 12.

VIEW

 

  • 하나 이상의 기본 테이블에서 유도되는 가상 테이블.
  • 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 보인다.
  • 뷰를 생성하면 정의가 시스템 내에 저장되었다가 생성된 이름을 질의어에서 사용할 경우 질의어가 실행될 뷰에 정의된 기본 테이블로 대체되어 기본 테이블에 대해 실행된다.

 

특징

 

  • 뷰는 기본 테이블에서 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 가지며, 조작도 기본 테이블을 사용하는 것과 유사하다
  • 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다.
  • 필요한 데이터만을 정의해서 처리할 있기 때문에 관리가 용이하고 명령문이 간단하다.
  • 뷰를 통해서만 데이터에 접근함으로써 뷰에 나타나지 않는 데이터를 안전하게 보호 있다.
  • 기본 테이블의 기본키를 포함한 속성 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능.
  • 뷰의 열이 테이블의 열이 아닌 상수, 계산식, 그룹 함수를 사용해 만들어 졌다면 뷰는 변경할 없다.
  • DINSTNCT, GROUP BY, HAVING 사용해 만들어진 뷰는 변경할 없다.
  • 이상의 테이블에서 유도된 뷰는 변경할 없다.
  • 변경하지 못하는 뷰를 토대로 하여 생성된 뷰는 변경할 없다.

 

CREATE VIEW

 

CREATE VIEW 뷰명(속성명)

AS SELECT

[WITH CHECK OPTION]

 

  • AS SELECT : 일반 SELECT문과 같으며, UNION이나 ORDER BY 사용할 없음.
  • WITH CHECK OPTION : 뷰에 대한 갱신이나 삽입 연산이 실행될 뷰의 정의 조건을 위배하면 실행을 거부
  • 속성명을 기술하지 않으면, SELECT문의 속성명이 자동으로 뷰의 속성명이 된다.

 

DROP VIEW

 

DROP VIEW 뷰명 {RESTRICT | CASCADE};

  • RESTRICT : 뷰를 다른 곳에서 참조하고 있으면 제거가 취소된다.
  • CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 제거한다.

 


'정보처리기사 실기 > 데이터베이스' 카테고리의 다른 글

SQL - 함수적 종속  (0) 2018.09.12
SQL - 이상(Anomaly)  (0) 2018.09.12
SQL - DCL  (0) 2018.09.12
SQL - DML  (0) 2018.09.12
SQL - JOIN  (0) 2018.09.12