[20120910] view 생성, 삭제, 수정, inline view, revoke(grant의 반대), between a and b
Oracle/기본문법 2012. 9. 18. 11:54◆ view ◆
- view
실제로 존재하지 않는 가상의 테이블을 의미함.
즉, A, B, C, D라는 컬럼을 가진 실제 테이블이 있고,
이 테이블에서 select의 함수등을 통해 연산처리된 추가적인 컬럼(E)를 만들수 있다면
출력된 결과를 가상의 테이블, 즉 view로 만들어 사용할 수 있게 한다.
EX)
jikwon 이라는 테이블의 정보(총 6개의 column)
select 함수를 이용하여 현재나이, 정년퇴직일자, 연봉을 추가로 출력한 결과값
해당 결과값을 뷰(가상테이블)로 생성
가상테이블로 만들어진 데이터 확인
이렇게 만들어진 뷰를 대상으로 예를 들어 [정년퇴직일이 2040년 이후인 직원중 연봉이 3000이상인 직원을 검색하라] 라는 문제를 보다 쉽게 해결할 수 있음. 또한, 뷰는 테이블의 정보를 변경하지 않기 때문에 테이블의 정보를 기반으로 구성된 쿼리나 프로그램에는 전혀 영향을 끼치지 않음.
- 뷰는 sys계정에서 create view 권한을 주어야 테이블 생성 권한을 주는 것처럼 뷰를 생성할 수 있음.
- create view [생성될뷰이름] as select ~~~ 로도 뷰 생성이 가능하나, 뷰내용의 교체(replace)는
replace 명령 단독으로 실행되지 않기 때문에, create or replace view 로 사용하는 것을 권장함.
- 뷰는 테이블과의 구분이 시각적으로 어렵기 때문에 파일명에서 차이를 두는 습관을 기르도록 권장함.
(ex: tbl_abc / view_abc 등)
- 뷰는 생성시 alias를 지정해야 정상적으로 생성된다. 다만, 컬럼명에서 함수등이 사용되지 않아 원 컬럼명 그대로
사용된 경우 alias 지정을 하지 않아도 생성이 가능하다.
- alias 지정시 각 컬럼명 뒤에 as "~~~"식으로도 가능하나,
create or replace view (컬럼1, 컬럼2, .....) 식으로 순차 맵핑시켜 생성도 가능하다.
- select * from user_views;
생성되어 있는 뷰의 소스를 확인할 수 있다.
- drop view [뷰이름]
생성한 뷰를 삭제한다.
- revoke [회수할 권한] from [사용자명];
sys 계정 명령어로 권한을 다시 회수할 때 사용하는 명령
- betweeb [X] and [Y]
X 부터 Y 까지의 데이터.
예를들어 1번부터 100번까지의 데이터가 있는데, 이중 30~39까지의 데이터를 뽑고싶다면 다음과 같이 사용할 수 있다.
between 30 and 39 혹은 trunc(현재나이, -1) = 30 혹은 숫자>=30 and 숫자 <=39
◆ inline view ◆
- inline view
인라인 뷰란, 실제 뷰를 생성하지 않고 SQL 쿼리문 안에서 선언하여 쿼리문 수행시 임시적으로 view를 만들어
사용하는데 이것을 inline view 라 칭함.
ex)
inline view 로 사용할 소스
작성한 소스 select 앞과 소스 가장 마지막을 (소스내용)["inline view명";] 를 사용하여 선언한다.
선언한 inline view는 선언한 inline view를 사용할 소스의 from 절에 위치하도록 한다.
- 선언한 inline view의 컬럼명은 ["inline view명".inline view컬럼명] 으로 사용한다.
- 선언된 inline view를 사용하여 작성한 쿼리문 역시 다시 inline view를 사용하여 묶을 수 있다.
'Oracle > 기본문법' 카테고리의 다른 글
WRITTEN BY