데이터베이스/쿼리
[Postgres] 테이블 정보 조회 ( 데이터베이스 목록, 테이블 목록, 스키마 목록, 컬럼 목록, 테이블 코멘트, 컬럼 코멘트 조회 )
모찌바라기
2022. 2. 8. 21:38
728x90
반응형
Postgresql에서 기본적인 테이블 정보를 뽑아보자. 이건 그냥 필요할 때마다 찾아보려고 쓰는 메모같은 느낌으로..
1. 데이터베이스 조회
SELECT datname FROM pg_database; -- 전체 데이터베이스 목록 조회
SELECT datname FROM pg_database WHERE datistemplate = false; -- 자신이 생성한 데이터베이스 목록만 조회
![]() |
2. 데이터베이스의 테이블 목록 조회
select * from pg_tables; -- 모든 테이블 조회
select tablename from pg_tables where SCHEMANAME = [자신이 생성한 스키마]; -- 자신이 생성한 테이블만 조회
![]() |
3. 데이터베이스의 스키마 목록 조회
select nspname from pg_catalog.pg_namespace; -- 전체 스키마 목록 조회
![]() |
4. 테이블의 컬럼 목록 조회
select
column_name,
data_type,
character_maximum_length
from
information_schema."columns"
where
table_name = [테이블명];
![]() |
5. 테이블 코멘트 목록 조회
SELECT PS.RELNAME AS TABLE_NAME
,PD.DESCRIPTION AS TABLE_COMMENT
FROM PG_STAT_USER_TABLES PS
,PG_DESCRIPTION PD
WHERE PS.RELNAME = [테이블명]
AND PS.RELID = PD.OBJOID
AND PD.OBJSUBID = 0;
![]() |
6. 컬럼 코멘트 목록 조회
SELECT PS.RELNAME AS TABLE_NAME
,PA.ATTNAME AS COLUMN_NAME
,PD.DESCRIPTION AS COLUMN_COMMENT
FROM PG_STAT_ALL_TABLES PS
,PG_DESCRIPTION PD
,PG_ATTRIBUTE PA
WHERE PS.SCHEMANAME = (SELECT SCHEMANAME
FROM PG_STAT_USER_TABLES
WHERE RELNAME = [테이블명])
AND PS.RELNAME = [테이블명]
AND PS.RELID = PD.OBJOID
AND PD.OBJSUBID <> 0
AND PD.OBJOID = PA.ATTRELID
AND PD.OBJSUBID = PA.ATTNUM
ORDER BY PS.RELNAME, PD.OBJSUBID
![]() |
728x90
반응형