직접 설계하고 구현했던 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절을 살리면 특정 컬럼만 조회 할 수도 있다.
'SQL' 카테고리의 다른 글
[오라클] UPDATE 후 COMMIT한 쿼리 특정 시간대로 복구하기 (2) | 2022.09.14 |
---|---|
[오라클] 테이블 백업 / 복사하기 (0) | 2022.08.26 |
[PostgresSQL] B테이블 조회 결과 A테이블에 UPDATE 하기 (0) | 2022.01.24 |
[PostgresSQL] 시퀀스 (Sequence) (0) | 2022.01.24 |
[PostGresSQL/PostGIS] 에러 및 해결 기록 (0) | 2022.01.19 |