테이블을 매번 셀렉트하여 값을 확인하는 것만이 아닌 다른 테이블을 만들어서 보고 싶지만, 테이블을 직접 건들이기 애매하다면 어떻게 할까요? 바로 이때 VIEW를 사용합니다.
한번더 정리하자면 기존의 테이블은 그대로 놔둔 채 필요한 컬럼들 및 새로운 컬럼을 만든 가상의 테이블을 말하며
실제 데이터가 저장되는 것은 아니지만 VIEW를 통해 데이터를 관리 할 수 있습니다.
<VIEW의 장점>
- 1. 독립성 : 다른 곳에서 접근하지 못하도록 하는 성질
- 2. 편리성 : 긴 쿼리문을 짧게 만드는 성질
- 3. 기존의 쿼리문이 보이지 않는다.
<VIEW의 단점>
1. 독립적인 인덱스를 가질 수 없는 성질
2. ALTER사용 불가 (조회의 기능이 크기 때문)
3. 삽입, 삭제, 갱신 기능 사용이 쉽지 않는 성질 (조회의 성질이 강하고, 특정 조건이 있어야 사용 가능)
2021.08.21 - [프로그래밍 공부/DBMS(Oracle)] - [lesson] DBMS - CREATE AS(데이터 복사)
[lesson] DBMS - CREATE AS(데이터 복사)
오늘은 데이터들중에서 필요한 데이터들을 추려내 데이터를 옮기는 방법을 배워보려 합니다. // 1. 테이블 복사하기 스키마/데이터 CREATE TABLE [복사한 데이터 가져올 테이블명] AS SELECT * FROM [복사
luna-lua.tistory.com
<VIEW의 기본 문법>
CREATE VIEW VIEW이름 AS 쿼리문
- 뷰 생성
-- EMPLOYEES 셀프 조인하여 매니저이름과 직원이름 가져와 VIEW 생성
CREATE VIEW MANAGERMACHING AS
SELECT E1.FIRST_NAME 직원이름, E2.FIRST_NAME 매니저이름
FROM EMPLOYEES E1 JOIN EMPLOYEES E2
ON E1.MANAGER_ID = E2.EMPLOYEE_ID;
- 뷰 삭제
DROP VIEW MANAGERMACHING [RESTRICT/CASCADE]
-- RESTRICT : 삭제할 뷰를 참조하고 있는 내용이 있다면 삭제 불가
-- CASCADE : 삭제할 뷰를 참조하고 있는 내용이 있다면 참조값은 NULL로 변경 후 삭제
<VIEW의 특징>
1. 기본테이블로부터 만들어진 테이블이기 때문에 형태와 구조가 같으며, 테이블 조작과 거의 동일하게 조작됩니다.
2. 가상의 테이블로 물리적 구현이 되어있지 않습니다.
3. 필요한 데이터만 뷰로 정의했기 때문에 용이한 관리와 명령문을 간단하게 작성할 수 있습니다.
4. 접근권한을 기본 테이블이 아닌 VIEW로만 한다면 테이블 없이 조회는 가능하지만 데이터 변경이 되지 않기 때문에 가지고 있는 데이터들을 지킬 수 있습니다.
5. 기본 테이블의 기본키를 포함한 속성집합으로 뷰를 만든다면, 조회만이 아닌 다른 기능(삽입, 삭제, 갱신, 연산)이 가능합니다.
6. 뷰가 정의된 기존 테이블이나 뷰(여기선 참조된 원본 뷰)를 삭제하면 참조한 다른 뷰들도 전체 자동으로 삭제 됩니다.
'프로그래밍 공부 > DBMS' 카테고리의 다른 글
#{} ${} (0) | 2023.01.09 |
---|---|
[lesson] DBMS - 삭제조건과 KEY (후보, 기본, 조합, 슈퍼, 외래, 유니크) (0) | 2021.08.23 |
[lesson] DBMS - JOIN (0) | 2021.08.22 |
[lesson] DBMS - CREATE AS(데이터 복사) (0) | 2021.08.21 |
[lesson] DBMS - Optimizer / HINT (0) | 2021.08.21 |