
GIF 출처 : https://logpresso.store/ko/apps/mysql
1 ) 뷰 ( View ) 란?
2 ) 뷰의 특징
3 ) 뷰 활용하기
뷰 ( View ) 란?
: 뷰 ( View ) 란 테이블을 직접 저장하지 않고 , 하나 이상의 테이블에서 유도된 가상의 테이블을 의미한다. 이를 통해 데이터를 직접 소유하지 않고 테이블의 형태만 차용하여 테이블처럼 사용할 수 있게 해준다.
테이블 하나로 뷰를 생성할 경우 단일 뷰 , 다수의 테이블로 뷰를 구성할 경우 복합 뷰라고 한다.
다음은 뷰의 장&단점을 보여준다.
- 복잡한 쿼리를 단축하여 사용자가 편리하게 사용할 수 있도록한다.
- 테이블과 열 이름 등을 숨길 수 있으며 , 권한에 따라 필요한 열만 구성해 사용할 수 있다.
- 뷰에서 사용 중인 테이블을 아무런 제약 없이 삭제할 수 있다.
- 한번 정의한 뷰는 변경할 수 없다.
- 삽입,삭제,갱신 작업을 하는데 제한 사항이 다수 존재한다.
- 뷰 테이블은 인덱스를 가질 수 없다.
: 뷰는 다음과 같은 기본 형식으로 구성되어있다.
CREATE VIEW [ 뷰 이름 ]
AS
< SELECT 문 >
ex )
CREATE VIEW view_woojuice
AS
SELECT user_nickname , user_age FROM User;
SELECT * FROM view_woojuice;
CREATE VIEW view_woojuice
AS
SELECT user_nickname , user_password FROM user;
SELECT * FROM view_woojuice;

2개의 테이블을 조인해 원하는 데이터를 보여주는 뷰 또한 생성이 가능하다.

뿐만 아니라 일반 테이블과 뷰 테이블을 조인하여 쿼리를 실행할 수도 있다. 다음은 일반 테이블과 뷰 테이블을 INNER JOIN 키워드를 통해 조회한 결과이다.

: 뷰는 일반 테이블과 마찬가지로 ALTER 키워드를 통해 내부 구조를 수정할 수 있다.
< 기본 형식 >
ALTER VIEW [ 뷰 이름 ]
AS
< SQL 문 >
ex )
ALTER VIEW userWithRefresh
AS
SELECT user_create_date , user_level
FROM user;
SELECT * FROM userWithRefresh;
이때 , 뷰 테이블과 원본 테이블의 컬럼 조건이 일치하지 않을 경우 열 불일치로 인해 오류가 발생할 수 있다. 따라서 이러한 이유로 데이터를 입력 , 삭제 , 수정하는 작업은 가급적 뷰 보다는 원본 테이블에서 직접 수행하는 것을 권장하고 있다.
: 뷰는 일반 테이블과 마찬가지로 DROP 키워드를 통해서 삭제할 수 있다.
< 기본 형식 >
DROP VIEW [ 뷰 이름 ]
ex )
DROP VIEW userWithRefresh;