개발공작소
article thumbnail
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
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!