SQL

[Oracle] 특정 컬럼이 존재하는 테이블, 뷰, 코멘트 찾기

devkmee 2022. 5. 12. 15:55

 

 

설계에 참여한 DB구조는 잘 알고 있었지만,

취업 후 이미 서비스 되고 있는 DB의 구조를 파악하는 것이 쉽지 않았다.

 

특히 규모가 큰 프로젝트일수록 ERD와 테이블정의서로 파악하기 어려웠기 때문에 도움이 되었던 쿼리문을 정리해보았다.

 

 

 

1. 특정 컬럼이 존재하는 테이블, 뷰 검색

--컬럼 검색
SELECT DISTINCT TABLE_NAME
--FROM ALL_TAB_COLUMNS	/*전체 테이블*/
FROM USER_TAB_COLUMNS	/*접속한 계정의 전체 테이블*/
WHERE COLUMN_NAME LIKE '%컬럼명%'
ORDER BY TABLE_NAME
;

>> 컬럼명 MEM_ID 검색 결과.

>> MEM_ID가 포함된 컬럼을 가진 테이블을 알고 싶었기 때문에 LIKE 문을 사용했지만,

     컬럼명을 정확하게 알고 있다면 % 를 지우거나 = 연산자를 사용해도된다.

>> 1행의 APPLICANT 의 경우 VIEW 인데도 검색되는 것을 알 수 있다.


 

2.특정 문자열이 포함된 테이블, 뷰 검색

--테이블 검색
SELECT *
--FROM ALL_TAB_COLUMNS  /*전체 테이블*/
FROM USER_TAB_COLUMNS   /*접속한 계정의 전체 테이블*/
WHERE TABLE_NAME LIKE '%테이블명%'
ORDER BY TABLE_NAME
;

>> 테이블명 DEV 검색 결과

>> LIKE 연산자를 사용해서 테이블명 중간이나 뒤에 DEV가 들어가도 조회되었다.

 


 

3. 테이블, 뷰 코멘트 검색

--테이블, 뷰 코멘트 검색
SELECT *
--FROM ALL_TAB_COLUMNS	/*전체 테이블*/
FROM USER_TAB_COLUMNS	/*접속한 계정의 전체 테이블*/
WHERE COMMENTS IS NOT NULL
ORDER BY TABLE_NAME
;​

>> 모든 테이블, 뷰의 코멘트 목록이 출력되었다.

>> 테이블만 캡쳐되었지만 뷰일 경우 TABLE_TYPE에 VIEW라고 출력되는 것을 확인 할 수 있다.

 


 

4. 컬럼 코멘트 검색

-- 컬럼 코멘트 검색
SELECT *
--FROM ALL_COL_COMMENTS  /*전체 테이블*/
FROM USER_COL_COMMENTS   /*접속한 계정의 전체 테이블*/
WHERE COMMENTS IS NOT NULL
--WHERE COLUMN_NAME LIKE '%컬럼명%'
ORDER BY TABLE_NAME
;

>> 모든 컬럼의 코멘트가 출력되었다.

>> 주석처리 된 WHERE절을 살리면 특정 컬럼만 조회 할 수도 있다.