view 와 table은 뭔가 일맥상통하는 부분이 있다.
간단한 예를 들어보겠다.
작업중에 다른 사용자가 다른 사용자의 데이터를 필요로 하는 경우들이 있다.
하지만 모든 데이터를 공개할순 없다. 급여 관련칼럼이라던지 비공개 되어야할 칼럼들이 존재하기 때문이다
이때 사용되는게 view이다
원하는 데이터 칼럼만 view를 생성해서 불러쓸수 있는 것이다.
CREATE VIEW v_emp1 AS
SELECT first_name, last_name, email, hire_date
FROM employees
WHERE department_id = 20;
위와 같은 쿼리를 작성하면 v_emp1 이라는 이름의 view가 생성되고 그 view에는 성, 이름, 메일, 고용날짜가 들어있는 임시테이블이 생성되는 것이다.
참 편하지 않는가? 비공개 데이터는 숨기고 원하는 자료만 딱딱 불러쓸 수 있다는것이 말이다.
여기서 조건절에 department_id가 20번인 부서만 보기를 원했는데 갑자기 다른 부서 사원들의 정보도 필요로 할 경우가 생긴다. 이러면 어떻게 할것인가? view를 drop 시켜야 하나? 아니다 'OR REPLACE' 구문을 사용하면 DROP할 필요가 없다. 왜냐? 대체되기 때문이다.
CREATE OR REPLACE VIEW v_emp1 AS
SELECT first_name, last_name, email, hire_date
FROM employees
WHERE department_id IN (20,30);
위와 같은 쿼리를 작성하면 VIEW단이 대체 되면서 20, 30번 부서의 사원정보를 볼 수 있다.
'oracle' 카테고리의 다른 글
LIKE 연산자 (0) | 2013.11.29 |
---|---|
ROWNUM 이란? (0) | 2013.11.17 |
서브쿼리의 이해 (0) | 2013.11.15 |
outer join (0) | 2013.10.31 |
데이터 관계 일대일,일대다, 다대다 (0) | 2013.10.31 |