DB 테이블 리스트 조회 방법
회사에서 업무를 하다보면 테이블 조회할 일이 많은데
ERD가 문서화되어있지 않으면 일단 내가 어떤 테이블을 조회할 수 있는지 어떤 테이블이 있는지조차 몰라서
문의가 들어왔을 때
'엥...' 하고 있을 때가 있다
최근 새로운 시스템 업무를 조금씩 인수인계 받기 시작하면서 생소한 테이블도 조회를 하고 있는데 앞으로 내가 어떤 테이블을 다룰지 미리미리 확인을 하기 위해서 권한을 부여받은 DB의 테이블을 미리 확인해보려고 하였다.
MySQL
SHOW TABLES;
MySQL에서는 show table로 현재 선택된 데이터베이스 내의 모든 테이블 출력 가능
SHOW TABLES FROM 데이터베이스명;
특정 데이터베이스의 테이블을 조회하려면 데이터베이스 명을 입력한다
SELECT table_name
FROM information_schema.tables
WHERE table_schema = '데이터베이스명' AND table_name LIKE '%키워드%';
특정 조건을 만족하는 테이블만 필터링 하기 위해서 infomation_schema.table 을 사용할 수있다
Oracle
Oracle에서는 ALL_TABLES 뷰를 통해 데이터베이스의 모든 테이블을 조회할 수 있지만
테이블을 스키마별로 관리하고 있으므로 스키마에 따라결과가 달라질 수 있다.
SELECT table_name
FROM all_tables
WHERE owner = '스키마명';
테이블 이름으로 필터링 가능
SELECT table_name
FROM all_tables
WHERE owner = '스키마명' AND table_name LIKE '%키워드%';
Oracle에서는 ALL_TABLES, USER_TABLES, DBA_TABLES 세 가지 테이블 뷰가 있는데, 각 뷰는 다음과 같은 용도로 사용됩니다:
- ALL_TABLES: 현재 사용자가 접근할 수 있는 모든 테이블
- USER_TABLES: 현재 사용자에게 속한 테이블만 조회
- DBA_TABLES: 데이터베이스 내 모든 테이블 조회 (DBA 권한 필요)