오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

오라클에서 테이블 목록을 조회할 때는 오라클에서 제공하는 3가지 시스템 뷰를 많이 사용한다. 3가지 시스템 뷰는 all_tables, all_tab_comments, all_objects이며 접근 권한에 따라서 접두어(all)를 바꿔서 사용할 수 있다.

테이블 목록 조회 방법 3가지

SELECT *
  FROM all_tables

all_tables는 권한을 가진 모든 테이블이 조회되며 통계 정보를 쉽게 확인할 수 있다.

SELECT *
  FROM all_tab_comments
 WHERE table_type = 'TABLE'

all_tab_comments는 권한을 가진 모든 테이블 목록과 테이블 설명(COMMENT)을 조회할 때 사용한다.

SELECT *
  FROM all_objects
 WHERE object_type = 'TABLE'

all_objects는 권한을 가진 모든 테이블의 최초 생성 일시와 마지막 변경 일시를 확인할 수 있다.

시스템 뷰의 접두어를 변경해서 사용 가능

all  all_tables
 all_tab_comments
 all_objects
 사용자 계정이 접근 가능한 모든 테이블 또는 객체 조회
user  user_tables
 user_tab_comments
 user_objects
 사용자 계정에 생성된 모든 테이블 또는 객체 조회
dba  dba_tables
 dba_tab_comments
 dba_objects
 관리자(DBA) 권한으로 모든 테이블 또는 객체 조회

일반적으로는 all 접두어 뷰를 많이 사용하며, 관리자 권한이 있으면 dba 접두어 뷰를 사용할 수 있다. 현재 로그인한 계정에 생성된 테이블 목록만 필요하다면 user 접두어 뷰를 사용하며 된다.

all_tables 사용법

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

all_tables 대신에 all_all_tables를 사용할 수 있다. all_all_tables 시스템 뷰를 사용하면 객체 테이블도 추가로 조할 수 있다. 일반적인 테이블을 조회한다면 all_tables를 사용하면 된다. all_tables 조회하면 table_type 칼럼 항목은 없으며 all_all_tables를 조회할 때만 table_type 칼럼이 존재하며 값이 NULL이면 일반 테이블, 값이 있으면 객체 테이블이다.

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

all_tablesall_all_tables의 차이는 조회 시 객체 테이블의 포함 여부이다.

all_tab_comments 사용법

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

all_tab_comments 시스템 뷰는 TABLE, VIEW 목록을 조회한다.

테이블만 조회를 할 경우 table_type 조건을 부여해야 테이블 목록만 조회된다.

SELECT *
  FROM all_tab_comments
 WHERE table_type = 'TABLE'
   AND owner IN ('SYSTEM', 'HR')
SELECT *
  FROM all_tab_comments
 WHERE table_name = 'EMP'

특정 테이블의 설명(COMMENT)을 확인할 때는 table_name 조건을 부여하면 된다.

all_objects 사용법

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

all_objects를 조회하면 테이블의 최초 생성 일시와 마지막 수정 일시를 확인할 수 있다.

all_objects는 테이블 외에 뷰, 프로시저, 함수, 시노님, 시퀀스 등 모든 객체를 조회할 수 있다.

SELECT *
  FROM all_objects
 WHERE object_name LIKE '%DEPT%'

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

all_objects 뷰는 테이블 조회보다는 전체적인 객체 검색이 필요할 때 많이 사용한다.

tabs (user_tables) 사용법

SELECT *
  FROM tabs
;

SELECT *
  FROM user_tables
;

tabs는 user_tables의 동의어(synomym)이다. 사용자의 계정에 생성된 모든 테이블을 조회한다.

테이블 명세서(컬럼 설명, 타입)를 조회하는 방법은 아래를 참고하면 된다.

[오라클] 컬럼 코멘트 조회 (comment, 커멘트, 테이블 명세서)

오라클(Oracle) 컬럼 코멘트 조회 오라클 쿼리를 작성하다 보면 컬럼의 의미 파악이 안될때가 있다. 이럴때는 오라클 코멘트 시스템뷰를 사용하여 컬럼 코멘트를 쉽게 조회 할 수 있다. 컬럼 코멘

gent.tistory.com

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

DB내에서 모든 테이블을 조회하기

전체 테이블 조회

  • SELECT * FROM ALL_TABLES; (관리자일 경우)
  • SELECT * FROM USER_TABLES(관리자 아닐 경우)
  • SELECT * FROM TAB(관리자 아닐 경우)

소유자(OWNER) 조회

SELECT FROM ALL_TABLES WHERE OWNER LIKE '%OWNER명%';

테이블명 포함 된 조회

SELECT FROM USER_TABLES WHERE TABLE_NAME LIKE '%테이블명%';

테이블스페이스 이름으로 조회

SELECT FROM USER_TABLES WHERE TABLESPACE_NAME LIKE '%테이블스페이스명%';

==================================================

※. 아래는 부가 설명이 있음

==================================================

전체 테이블 조회 방법 3가지

  • ALL_TABLES
  • USER_TABLES
  • TAB

ALL_TABLES 테이블 구조

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

USER_TABLES 테이블 구조

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

TAB 테이블 구조

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

관리자 계정일 경우 - 모든 계정의 DB를 다 보여줌 ALL_TABLES (추천)

ex) SELECT * FROM ALL_TABLES; 

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

관리자 계정이 아닐 경우 (방법 3가지)

ALL_TABLES VS USER_TABLE (추천) = TAB

1. ALL_TABLES - 현재 계정관리자 DB만 보여짐

ex) SELECT * FROM ALL_TABLES;

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

2. USER_TABLE - 현재 계정이 가지고 있는 DB만 보여짐

ex) SELECT * FROM USER_TABLES;

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe

3. TAB -현재 계정이 가지고 있는 DB만 보여짐

※주의 : TNAME, TABTYPE 컬럼만 있음

ex) SELECT * FROM TAB;

오라클유저 테이블 조회 - olakeul-yujeo teibeul johoe