'View'에 해당되는 글 2건
- 2012.02.29 [Oracle] DATA DICTIONARY VIEW
- 2009.04.15 [Oracle] 오라클 객체(2) [VIEW 테이블]
[Oracle] DATA DICTIONARY VIEW
DATA DICTIONARY VIEW : 현재 사용자가 가지고 있는 모든 테이블에 대한 메타정보를 보여줌
## 전체 테이블
SELECT * FROM TAB;
## 현재 사용자가 액세스 할 수 있는 관계형 테이블
SELECT * FROM ALL_TABLES;
## 사용자가 소유한 테이블을 조회
SELECT * FROM USER_TABLES;
SELECT * FROM USER_OBJECTS;
SELECT * FROM USER_CATALOG;
## 테이블 코멘트
SELECT * FROM USER_TAB_COMMENTS;
## 컬럼 코멘트
SELECT * FROM USER_COL_COMMENTS;
## DB 객체별 SEGMENT 할당 용량 조회
SELECT * FROM USER_SEGMENTS;
'Database / Sql' 카테고리의 다른 글
[MS-SQL] AUTO COMMIT 해제 방법 (0) | 2012.06.12 |
---|---|
[Oracle] User 권한 보기 (0) | 2012.03.27 |
[Oracle] DBA_USER 확인 (0) | 2012.02.23 |
[Oracle] SESSION 수 체크 (0) | 2012.02.23 |
[Oracle] LOCK 해제 (0) | 2012.02.23 |
[Oracle] 오라클 객체(2) [VIEW 테이블]
** 뷰란? **
- 뷰는 하나의 가상 테이블이라 생각 하시면 됩니다.
- 뷰는 실제 데이터가 저장 되는 것은 아니지만 뷰를 통해 데이터를 관리 할 수 있습니다.
- 뷰는 복잡한 query를 통해 얻을 수 있는 결과를 간단한 query를 써서 구할 수 있게 합니다.
- 한개의 뷰로 여러 테이블에 대한 데이터를 검색할 수 있습니다.
- 특정 평가기준에 따른 사용자 별로 다른 데이터를 액세스 할 수 있도록 합니다.
** 뷰의 제한 조건 **
- 테이블에 NOT NULL로 만든 컬럼들이. 뷰에 다 포함이 되 있어야 됩니다.
- 그리고 ROWID, ROWNUM, NEXTVAL, CURRVAL 등과 같은 가상컬럼에 대한 참조를 포함하고 있는 뷰에는 어떤 데이터도 Insert할 수 없습니다.
- WITH READ ONLY 옵션을 설정한 뷰도 데이터를 갱신할 수 없습니다.
- WITH CHECK OPTION을 설정한 뷰는 뷰의 조건에 해당되는 데이터만 삽입, 삭제, 수정을 할 수 있습니다.
**[ Syntax ]*******************************************************************
* CREATE[OR REPLACE] [FORCE|NOFORCE] VIEW view_name
* AS subquery
* [WITH CHECK OPTION [CONSTRAINT 제약조건]]
* [WITH READ ONLY]
*******************************************************************************
- FORCE : 기본 테이블 유무에 관계없이 VIEW를 생성
- WITH CHECK OPTION : VIEW에 의해 엑세스될 수 있는 행만이 입력되거나 변경될 수 있음을 지정 합니다.
- WITH READ ONLY : SELECT만 가능한 VIEW의 생성
- VIEW를 정의 하는 질의어에는 ORDER BY절을 사용할 수 없습니다.
- 함수를 사용한 컬럼은 반드시 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
view created
이렇게 뷰를 생성해 놓고 뷰를 통해 검색을 하면 됩니다.
SQL> SELECT * FROM Name_Query;
ENAME DNAME
-------------------- ----------
SMITH RESEARCH
JONES RESEARCH
SCOTT RESEARCH
ADAMS RESEARCH
FORD RESEARCH
** WITH CHECK OPTION **
view의 조건식을 만족하는 데이터만 INSERT 또는 UPDATE가 가능하도록 하는 옵션 입니다.
SQL> CREATE OR REPLACE VIEW Check_Option
AS SELECT empno, ename, deptno
FROM emp
WHERE deptno = 10
WITH CHECK OPTION
view create
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의 조건에 위배 됩니다
부서 번호가 10인 사원만 INSERT, UPDATE할 수 있습니다.
** 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
view created.
단순히 읽기만 할수 있고 데이터는 입력하지 못합니다.
** VIEW에 대한 DML문 사용 규칙 **
- VIEW가 다음 사항을 포함하는 경우 행의 삭제 불가
-> JOIN조건, 그룹함수, GOUP BY절, DISTINCT명령
- VIEW가 다음 사항을 포함하는 경우 데이터 수정 불가
-> JOIN조건, 그룹함수, GROUP BY절, DISTINCT명령, 식으로 정의된 컬럼(EX SAL * 0.1)
- VIEW가 다음 사항을 포함하는 경우 데이터 추가 불가
-> JOIN조건, 그룹함수, GROUP BY절, DISTINCT명령, 식으로 정의된 컬럼, VIEW에 선택되지 않는 NOT NULL컬럼
** 뷰의 정보 조회 **
USER_VIEWS 데이터 사전을 통해서 뷰에 대한 정보를 조회 할 수 있습니다.
SQL> SELECT view_name, text
FROM USER_VIEWS;
** 뷰의 삭제 **
SQL> DROP VIEW Read_Only;
view dropped.
================================================ * Oracle Community OracleClub.com * http://www.oracleclub.com * http://www.oramaster.net * 운영자 : 김정식 (oramaster _at_ empal.com) ================================================ |
※ 강좌를 다른 홈페이지에 기재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^ |
'Database / Sql' 카테고리의 다른 글
[Oracle] 오라클 객체(4) [SYNONYM] (0) | 2009.04.15 |
---|---|
[Oracle] 오라클 객체(3) [SEQUENCE(시퀀스)] (0) | 2009.04.15 |
[Oracle] 오라클 객체(1) [인덱스(Index)] (0) | 2009.04.15 |
[Oracle] PL/SQL에서 엔터(enter)키 역할 사용하는 방법 (0) | 2009.04.14 |
[Oracle] 테이블 복사 (0) | 2009.04.14 |