데이터베이스를 사용하다 보면, 특정 테이블의 정확한 이름이나 위치(스키마)를 바로 찾기 어려울 때가 있습니다. Oracle과 Tibero는 데이터 사전 뷰(Data Dictionary View)를 제공해 테이블을 빠르게 검색할 수 있습니다. 이 글에서는 실무에서 자주 쓰이는 테이블 검색 SQL 예제와 팁을 정리했습니다.
Oracle 예제 쿼리
현재 계정의 테이블 찾기
SELECT table_name
FROM user_tables
WHERE table_name LIKE '%ITEM_TABLE%';
SQL- USER_TABLES : 현재 접속 계정이 소유한 테이블 목록
LIKE '%ITEM_TABLE%'
: ITEM_TABLE 문자열이 포함된 테이블명 검색
다른 계정(스키마)의 테이블 찾기
SELECT owner, table_name
FROM all_tables
WHERE table_name LIKE '%ITEM_TABLE%';
SQL- ALL_TABLES : 현재 계정이 접근 가능한 모든 테이블 목록
OWNER
컬럼을 통해 소유자 스키마 확인 가능
전체 DB 내 테이블 찾기 (DBA 권한 필요)
SELECT owner, table_name
FROM dba_tables
WHERE table_name LIKE '%ITEM_TABLE%';
SQL- DBA_TABLES : 모든 스키마의 테이블 목록
Tibero 예제 쿼리
🚩 Tibero는 Oracle과 거의 동일한 문법을 사용합니다.
-- 현재 계정
SELECT table_name
FROM user_tables
WHERE table_name LIKE '%ITEM_TABLE%';
-- 다른 계정(접근 권한 있는 테이블)
SELECT owner, table_name
FROM all_tables
WHERE table_name LIKE '%ITEM_TABLE%';
-- 전체 DB (DBA 권한 필요)
SELECT owner, table_name
FROM dba_tables
WHERE table_name LIKE '%ITEM_TABLE%';
SQL실무 활용 팁
- 컬럼까지 검색하려면
USER_TAB_COLUMNS
,ALL_TAB_COLUMNS
사용 - 대소문자 구분 문제 방지하려면 검색어를
UPPER()
로 감싸고 비교
WHERE UPPER(table_name) LIKE UPPER('%ITEM_TABLE%')
SQL- 스키마명이 확실하면
OWNER = '스키마명'
조건을 함께 사용해 검색 속도 향상 - Tibero에서 대량 검색 시
PARALLEL
옵션을 활용하면 속도 개선 가능
마무리
Oracle과 Tibero에서 테이블을 찾는 방법은 거의 동일합니다.USER_TABLES
, ALL_TABLES
, DBA_TABLES
3가지를 상황에 맞게 사용하면
내 계정, 다른 계정, 전체 DB까지 빠르게 검색할 수 있습니다.
테이블처럼 컬럼을 찾는 방법도 있습니다. 👉 컬럼 찾기 포스팅 보러 가기