DB 뷰(view)
DB에서의 view(뷰)
- 가상 테이블의 일종
- 가상 테이블이기 때문에 물리적 저장소(이를 테면 Disk)에 적재된 데이터가 아니다.
- 그렇기 때문에 실제 데이터를 가지고있지 않다.
- 1개 이상의 기본 테이블로부터 유도된다.
- 가상 테이블이기 때문에 물리적 저장소(이를 테면 Disk)에 적재된 데이터가 아니다.
- 그렇기 때문에 실제 데이터를 가지고있지 않다.
- 1개 이상의 기본 테이블로부터 유도된다.
Example
휴대전화번호가 010로 시작하지 않는 고객들에게
번호 변경 권장 문자메시지를 보내기 위해
고객 정보 테이블에서
휴대전화번호가 010로 시작하지 않는 고객들을 뽑을 때
CREATE VIEW Non010(name, phone_number)
AS SELECT name phone_number
AS SELECT name phone_number
FROM User_Info
WHERE not phone_number like 010__________
WHERE not phone_number like 010__________를 조건문으로 사용하게 된다면
010으로 시작하지 않는 고객 뿐 아니라
010-xxxx-xxxx의 자릿수를 만족하지 않는 고객까지 조회됨.
위와 같이 임시적인 작업들이나
기본 테이블의 내용을 변경하지 않고
미리 작업할 내용을 테스트 할 때
적재된 데이터들을 MODIFY 하기전 확인용도로 쓰일 수 있다.
<뷰의 보안>
- 뷰마다 접근 설정을 할 수 있다.볼 수 있는 정보를 다르게 할 수 있다.- 사용자A는 접근 가능하게, 사용자B는 접근 불가능하게.
- 권한과 관련이 많은 객체이다.
<뷰의 재사용성>
- 한 번 정의된 뷰는 다른 뷰를 만들때 재사용할 수 있다.- SELECT 문을 객체로 저장하여 Table처럼 사용할 수 있다.
<뷰 삭제시>
- 뷰는 한 번 생성되면 DDL을 통해 정의를 변경할 수 없다.- 변경이 필요한 경우 삭제후 생성해야함.
DROP VIEW VIEW1 RESTRICT
다른 곳에서 VIEW1를 참조하고 있을 때, VIEW1 삭제 취소
DROP VIEW VIEW1 CASCADE
다른 곳에서 VIEW1를 참조하고 있을 때, 참조하고 있는 VIEW까지 삭제
댓글
댓글 쓰기