데이터 사전(Data Dictionary) 정보조회

데이터 사전의 괄호 명칭(dict, obj, tabs, cols..등)은 데이터사전의 시노님이다. 시노님을 이용하여 조회 할 수도 있다.

데이터 사전 뷰

DICTIONARY (DICT)

– 권한이 있는 데이터사전에 대한 데이터사전명과 설명 정보를 제공한다.

-- USER_INDEX로 시작하는 데이터사전을 조회하는 예이다. 
SELECT * 
FROM DICT 
WHERE TABLE_NAME LIKE 'USER_INDEX%';

DICT_COLUMNS

– 데이터사전의 컬럼에대한 정보를 조회 할 수 있다.

-- USER_INDEXES 데이터사전의 컬럼 정보를 조회하는 예이다 
SELECT * 
FROM DICT_COLUMNS 
WHERE TABLE_NAME ='USER_INDEXES';

자주 사용하는 데이터 사전

USER_OBJECTS (OBJ)

– 모든 객체(테이블, 인덱스, 시퀀스등..)에 대한 정보를 제공한다.

-- 사용자의 테이블명을 조회하는 예이다 
SELECT object_name 
FROM USER_OBJECTS 
WHERE object_type='TABLE';


-- 아래는 시노님을 이용해서 조회하는 예이다.
SELECT object_name 
FROM obj 
WHERE object_type='TABLE';

USER_TABLES (TABS)

– 테이블에 대한 정보를 제공한다.

-- 사용자가 소유한 테이블명과 테이블의 테이블스페이스를 조회하는 예이다. 
SELECT table_name, tablespace_name 
FROM tabs;

USER_TAB_COLUMNS (COLS)

– 사용자가 소유한 테이블의 컬럼에 대한 정보를 제공한다.

-- DEPTNO 컬럼이 있는 테이블과 테이터타입, 데이터사이즈를 조회하는 예이다. 
SELECT table_name, data_type, data_length 
FROM cols 
WHERE column_name='DEPTNO' ;

USER_CONSTRAINTS, USER_CONS_COLUMNS

– USER_CONSTRAINTS : 사용자가 소유한 제약조건 정보 제공
– USER_CONS_COLUMNS : 컬럼에 할당된 제약조건 정보 제공

-- 입력받은 테이블의 제약조건 정보를 조회하는 예이다. 
SELECT SUBSTR(a.column_name,1,15) column_name,  
DECODE(b.constraint_type,
'P','PRIMARY KEY',
'U','UNIQUE KEY',
'C','CHECK OR NOT NULL',
'R','FOREIGN KEY') constraint_type,  
a.constraint_name  
FROM user_cons_columns a, user_constraints b  
WHERE a.table_name = UPPER('&table_name') 
AND a.table_name = b.table_name  
AND a.constraint_name = b.constraint_name  
ORDER BY 1;  

-- 테이블 명을 입력 하면 된다.
table_name의 값을 입력하십시오: emp2 

COLUMN_NAME CONSTRAINT_TYPE CONSTRAINT_NAME
------------- ----------------- -----------------
DEPTNO FOREIGN KEY FK_DEPTNO
EMPNO PRIMARY KEY PK_EMP

USER_INDEXES (IND), USER_IND_COLUMNS

– USER_INDEXES(IND) : 사용자가 소유한 인덱스 정보 제공
– USER_IND_COLUMNS: 인덱스 컬럼에 대한 정보 제공

-- 사용자가 소유한 인덱스 정보를 조회하는 예이다. 
SELECT index_name, table_name, tablespace_name 
FROM user_indexes;

주요 데이터 사전

USER_OBJECTS(OBJ) : 모든 오브젝트에 대한 정보를 지원, 오브젝트 유형, 작성시간, 오브젝트에 사용된 최종 DDL 명령, alter, grant 및 revoke 등

USER_TABLES(TABS) : 테이블에 대한 정보

USER_TAB_COLUMNS(COLS) : 컬럼에 대한 정보

USER_VIEWS : 뷰에 대한 정보

USER_SYNONYMS(SYN) : 동의어

USER_SEQUENCES(SEQ) : 시퀀스

USER_CONSTRAINTS : 제약조건

USER_CONS_COLUMNS : 제약 조건을 가진 열에 대한 정보

USER_TAB_COMMENTS : 테이블/뷰에 대한 주석

USER_COL_COMMENTS : 컬럼에 대한 주석

USER_INDEXES(IND) : 인덱스에 관한 정보

USER_IND_COLUMNS : 인덱스열에 대한 정보

USER_CLUSTERS(CLU) : 클러스터와 관련된 정보

USER_DB_LINKS : 데이터베이스 링크에 관련된 정보

USER_TRIGGERS : 트리거

USER_SOURCE : 프로시저, 함수 및 패키지

USER_ERRORS : 코드 오류

USER_TABLESPACES : 테이블스페이스

USER_USERS : 사용자

USER_TAB_PRIVS : 테이블 권한

USER_COL_PRIVS : 열 권한

USER_SYS_PRIVS : 시스템 권한

Oracle Database 전체 데이터사전

http://docs.oracle.com/cd/B28359_01/server.111/b28320/index.htm
– 강좌 URL : http://www.gurubee.net/lecture/1850