본문 바로가기

DBMS

[ORACLE] dictionary 쿼리

이 포스팅에서는 직접 사용했던 부분에 대해서만 간략히 기재하려고 한다.

Oracle Reference에서 테이블에 대한 상세한 내용을 확인할 수 있다.

https://docs.oracle.com/en/database/oracle/oracle-database/18/refrn/ALL_TABLES.html#GUID-6823CD28-0681-468E-950B-966C6F71325D

 

Database Reference

ALL_TABLES describes the relational tables accessible to the current user. To gather statistics for this view, use the DBMS_STATS package.

docs.oracle.com

 

 

테이블 정보 :

현재 사용자가 액세스할 수 있는 테이블 - ALL_TABLES

현재 사용자가 소유한 테이블 - USER_TABLES

OWNER 테이블 소유자 (ALL_TABLES 에만 존재)
TABLE_NAME 테이블 이름
NUM_ROWS 행 수
(테이블에 대한 통계를 수집하는 경우 채워지며 실제 값과 차이가 날 수 있음)

 

테이블 설명 정보 :

현재 사용자가 액세스할 수 있는 테이블과 뷰에 대한 설명 - ALL_TAB_COMMENTS

현재 사용자가 소유한 테이블과 뷰에 대한 설명 - USER_TAB_COMMENTS

OWNER 테이블 소유자 (ALL_TAB_COMMENTS 에만 존재)
TABLE_NAME 테이블 이름
COMMENTS 테이블 설명

 

데이터베이스의 용량 확인 :

데이터베이스의 모든 세그먼트에 할당된 저장소 - DBA_SEGMENTS

현재 사용자가 소유한 세그먼트에 할당된 저장소 - USER_SEGMENTS

SEGMENT_TYPE 세그먼트 유형
(ex. TABLE, INDEX, CACHE ...)
BTYE 세그먼트의 크기(바이트)
SELECT TO_CHAR(SUM(BYTES/1024/1024), 'FM9990.99')
FROM USER_SEGMENTS
WHERE SEGMENT_TYPE='TABLE'

 

 

컬럼 정보 : 

현재 사용자가 액세스할 수 있는 테이블과 뷰의 열에 대한 설명 - ALL_TAB_COLUMNS

현재 사용자가 소유한 테이블과 뷰의 열에 대한 설명 - USER_TAB_COLUMNS

OWNER 테이블 소유자 (ALL_TAB_COLUMNS 에만 존재)
TABLE_NAME 테이블 이름
COLUMN_NAME 열 이름
DATA_TYPE 열의 데이터 유형
DATA_LENGTH 열의 길이(바이트)
NULLABLE NULL 허용여부
COLUMN_ID 열의 시퀀스

 

컬럼 설명 정보 :

현재 사용자가 액세스할 수 있는 테이블과 뷰의 열에 대한 설명 - ALL_COL_COMMENTS

현재 사용자가 소유한 테이블과 뷰의 열에 대한 설명 - USER_COL_COMMENTS

OWNER 테이블 소유자 (ALL_COL_COMMENTS 에만 존재)
TABLE_NAME 테이블 이름
COLUMN_NAME 열 이름
COMMENTS 컬럼 설명

 

제약조건 정보 : 

현재 사용자가 액세스할 수 있는 테이블에 대한 제약 조건 - ALL_CONSTRAINTS

현재 사용자가 소유한 테이블에 대한 모든 제약 조건 - USER_CONSTRAINTS

CONSTRAINT_NAME 제약 조건 이름
CONSTRAINT_TYPE 제약 조건 유형
C - 제약 조건 확인
P - Primary Key
U - Unique Key
F - REF 열
TABLE_NAME 테이블 이름

현재 사용자가 액세스할 수 있고 제약 조건에 지정된 열 - ALL_CONS_COLUMNS

현재 사용자가 소유하고 제약 조건에 지정된 열 - USER_CONS_COLUMNS

CONSTRAINT_NAME 제약 조건 이름
TABLE_NAME 테이블 이름
COLUMN_NAME 제약 조건 정의에 지정된 열 이름

 

SELECT COLUMN_NAME
FROM USER_CONS_COLUMNS
WHERE CONSTRAINT_NAME = (SELECT CONSTRAINT_NAME
                                                        FROM USER_CONSTRAINTS
                                                        WHERE CONSTRAINT_TYPE = 'P' AND table_name = 'TEST')

-테이블의 PK 제약조건에 지정된 컬럼 조회