SQL | View

DoItDev·2021년 9월 23일
0
post-thumbnail

View

Note:

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나의 기본 테이블로 부터 유도된, 이름을 가지는 가상 테이블
  • 저장 장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것 처럼 간주
  • 데이터 보정 작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용
  • 조인문의 최소화로 사용상 편의성 최대화 한다.

특징

  1. 기본 테이블로 부터 유도된 테이블이기 때문에 기본테이블 과 같은 형태의 구조를 사용
  2. 가상 테이블 이기 떄문에 물리적으로 구현이 불가능
  3. 데이터의 논리적 독립성을 제공
  4. 필요한 데이터만 뷰로 정의해서 처리가 가능하며 관리가 용의해진다.
  5. 뷰를 통해서만 데이터에 접근하게 한다면 뷰에 나타나지 않는 데이털를 안전하게 보호 하는데 효율적이다.
  6. 기본 테이블의 기본키를 포함한 속성 집합으로 뷰를 구성해야지만 삽입, 삭제, 갱신, 연산이 가능하다.
  7. 정의 된 뷰는 다른 뷰의 정의에 기초 될 수 있다.
  8. 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제

장/단점

장점

  • 논리적 데이터 독립성을 제공
  • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해준다.
  • 사용자의 데이터 관리를 간단하게 해준다.
  • 접근 제어를 통한 자오 보안이 제공

단점

  • 동립적인 인덱스를 가질 수 있다.
  • ALTER VIEW 문을 사용이 불가능하다, 즉 뷰의 정의를 변경할 수 없다.
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.

mysql 에서의 view 사용법

뷰 만들기

CREATE 를 해주기 위해서는 뷰로 만들기 위한 테이블을 선정해주고 후에 아래의 구문의 형태로 날려준다.

CREATE VIEW [VIEW_NAME] AS SELECT [COPY_COLUMN1] , [COPY_COLUMN2] , [COPY_COLUMN3]
FROM [COPY_TABLE]

CREATE VIEW V_APP_USER AS
SELECT *
FROM app_user;

화면 캡처 2021-09-23 142944

기존에 테이블만 존재를 했지만 뷰까지 존재가 된다.

뷰 조회

기본 DML 과 똑 같이 조회를 해준다.

SELECT *
FROM [VIEW_NAME]

SELECT *
FROM V_APP_USER;

뷰 삭제

뷰는 수정이 불가능 하기 때문에 테이블에 대한 변경사항이 있다면
뷰를 삭제 시켜주고 재생성 하면 된다.
아래와 같은 형태로 SQL 구문을 날려주면 된다.

DROP VIEW [VIEW_NAME];

DROP VIEW V_APP_USER;
profile
Back-End Engineer

0개의 댓글