--table; 물리적 , DB 파일로 저장
--view : table 기반 논리적인 가상의 테이블 (테이블을 볼수있는 창) , select 문을 저장
--보안목적 (table 의 칼럼의 일부만 공개하기위해)
--복잡한 SQL 문장이 반복적으로 사용되면 이를 view 만들어서 사용하면 편리
--WITH CHECK OPTION --(DEFAULT) DML 수행가능 (INSERT , DELETE ,UPDATE)
--WITH READ ONLY : SELECT 전용
--NOFORCE (DEFAULT) TABLE 존재 여부 확인하고 존재하면 VIEW 생성
--NOFORCE : TABLE 존재여부확인
--- 만들어진 view 를 data 사전에서 검색해보기
select * from user_views;
CREATE OR REPLACE VIEW EMP_COUNTRY_VIEW
AS
SELECT FIRST_NAME , LAST_NAME, CITY,COUNTRY_NAME
FROM EMPLOYEES JOIN DEPARTMENTS USING (DEPARTMENT_ID)
JOIN LOCAIONS USING (LOCATION_ID)
JOIN JOBS COUNTRIES(COUNTRY_ID)
--뷰 생성할수있는 권한 부여
grant create view to USER이름;
--VIEW 는 객체로 저장됨
--SELECT 문에 FROM 절에 (SELECT 문): inline view
--급여가 가장많은 5명 2회
---view 생성해서 사용
create or replace view emp_sal_view
as
select *
from employees
order by salary desc nulls last ;
--Inline View (1회성이면 더 좋다) --
select *
from (select *
from employees
order by salary desc nulls last)
where rownum <=5 ;'DataBase' 카테고리의 다른 글
| 저장 프로시저 (0) | 2024.10.28 |
|---|---|
| 인덱스(INDEX) (0) | 2024.10.25 |
| Sequence(오라클) (0) | 2024.10.25 |
| TRANSACTION/제약조건/테이블생성시 제약조건 (0) | 2024.10.25 |
| executeQuery와 executeUpdate()의 차이 (0) | 2024.10.25 |