뷰란?
- 뷰는 하나의 가상 테이블이라 생각 하면 된다.
- 뷰는 실제 데이터가 저장 되는 것은 아니지만 뷰를 통해 데이터를 관리 할수 있다.
- 뷰는 복잡한 Query를 통해 얻을 수 있는 결과를 간단한 Query로 얻을 수 있게 한다.
- 한 개의 뷰로 여러 테이블에 대한 데이터를 검색 할 수 있다.
- 특정 평가 기준에 따른 사용자 별로 다른 데이터를 액세스할 수 있도록 한다.
뷰의 제한 조건.
- 테이블에 NOT NULL로 만든 컬럼들이 뷰에 다 포함이 되 있어야 한다.
- ROWID, ROWNUM, NEXTVAL, CURRVAL등과 같은 가상컬럼에 대한 참조를 포함하고 있는 뷰에는 어떤 데이터도 INSERT 할 수 없다
- WITH READ ONLY 옵션을 설정한 뷰도 데이터를 갱신 할 수 없다.
- WITH CHECK OPTION을 설정한 뷰는 뷰의 조건에 해당되는 데이터만 삽입, 삭제,수정을 할 수 있다
뷰 문법
- FORCE : 기본 테이블 유무에 관계없이 VIEW를 생성
- WITH CHECK OPTION : VIEW에 의해 엑세스될 수 있는 행만이 입력되거나 변경될 수 있음을 지정
- WITH READ ONLY : SELECT만 가능한 VIEW 생성
- 함수를 사용한 컬럼은 반드시 ALIAS를 지정해야 한다.
뷰 예제
-- 뷰 생성 SQL> CREATE OR REPLACE VIEW name_query AS SELECT a.ename, b.dname FROM emp a, dept b WHERE a.deptno = b.deptno AND b.deptno = 20; -- 뷰를 이용한 조회 SQL> SELECT * FROM name_query; ENAME DNAME -------------------- ---------- SMITH RESEARCH JONES RESEARCH ...
WITH CHECK OPTION
뷰의 조건식을 만족하는 데이터만 INSERT 또는 UPDATE가 가능 하도록 하는 옵션 이다.
-- 부서 번호 10의 데이터를 조회 하는 뷰 SQL> CREATE OR REPLACE VIEW check_option AS SELECT empno, ename, deptno FROM emp WHERE deptno = 10 WITH CHECK OPTION ; -- 부서 번호가 10인 사원만 INSERT, UPDATE할 수 있다. SQL> INSERT INTO check_option(empno, ename, deptno) VALUES (10005, 'jain', 30); INSERT INTO check_option(empno, ename, deptno) * 1행에 오류: ORA-01402: 뷰의 WITH CHECK OPTION의 조건에 위배 됩니다
WITH READ ONLY
SELECT만 가능한 VIEW를 생성 한다
-- 아래 뷰는 읽기만 가능하다. SQL> CREATE OR REPLACE VIEW read_only AS SELECT empno, ename, deptno FROM emp WHERE deptno = 10 WITH READ ONLY;
뷰의 정보 조회
USER_VIEWS 데이터 사전을 통해서 뷰에 대한 정보를 조회 할 수 있다.
SQL> SELECT view_name, text FROM USER_VIEWS;
update COMVNUSERMASTER set user_nm = 'dddd' where user_id = 'ddd'
select * from COMVNUSERMASTER
select * from lettnemplyrinfo
CREATE OR REPLACE FORCE VIEW "REMOTETRAINING"."COMVNUSERMASTER" ("ESNTL_ID", "USER_ID", "PASSWORD", "USER_NM", "USER_ZIP", "USER_ADRES", "USER_EMAIL", "GROUP_ID", "USER_SE", "ORGNZT_ID", "PSTINST_CODE", "OFCPS_NM") AS
SELECT esntl_id, emplyr_id, PASSWORD, user_nm, zip, house_adres, email_adres, GROUP_ID, 'USR' AS user_se, orgnzt_id, pstinst_code, ofcps_nm FROM lettnemplyrinfo WITH CHECK OPTION
'IT' 카테고리의 다른 글
[JEUS] JEUS 디렉토리 구조 (0) | 2021.06.25 |
---|---|
9.1 사용자 조건식 불러오기 (0) | 2021.06.25 |
네이버 웹마스터 도구에 사이트맵(Sitemap) 등록 방법 (0) | 2021.06.25 |
Apache : CSR 생성 및 SSL 인증서 적용 (0) | 2021.06.25 |
EDX 설치 방법 (0) | 2021.06.25 |
댓글