본문 바로가기

db/postgresql

postgresql 테이블 명세서 쿼리

반응형
postgresql 테이블 명세서 (정의서)
postgresql 테이블 명세서 쿼리, 테이블 정의서 쿼리 작성 내용입니다.

 

 

postgresql 쿼리
  1. 테이블명세서 (정의서) 내용입니다.
  2. [테이블 설명], [칼럼명], [칼럼 COMMENT], [DATA TYPE], [길이], [소수점], [기본값], [NOT NULL여부], [PK 여부]
SELECT 
    T.TABLE_NAME,                                 -- 테이블 명
    OBJ_DESCRIPTION(T.TABLE_NAME::REGCLASS) AS TABLE_COMMENT,  -- 테이블 설명
    C.COLUMN_NAME,                                -- 컬럼명
    COL_DESCRIPTION(T.TABLE_NAME::REGCLASS, C.ORDINAL_POSITION) AS COLUMN_COMMENT,  -- 컬럼 COMMENT
    C.DATA_TYPE,                                  -- DATA TYPE
    C.CHARACTER_MAXIMUM_LENGTH AS LENGTH,         -- 길이
    C.NUMERIC_SCALE AS SCALE,                     -- 소수점
    C.COLUMN_DEFAULT AS DEFAULT_VALUE,            -- 기본값
    CASE C.IS_NULLABLE WHEN 'YES' THEN 'YES' ELSE 'NO' END AS IS_NULLABLE,  -- NOT NULL 여부
    CASE WHEN KCU.CONSTRAINT_NAME IS NOT NULL THEN 'YES' ELSE 'NO' END AS IS_PK  -- PK 여부
FROM 
    INFORMATION_SCHEMA.TABLES T
    JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME = C.TABLE_NAME AND T.TABLE_SCHEMA = C.TABLE_SCHEMA
    LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU 
        ON T.TABLE_NAME = KCU.TABLE_NAME AND C.COLUMN_NAME = KCU.COLUMN_NAME 
        AND KCU.CONSTRAINT_NAME = 'PRIMARY'
WHERE 
    T.TABLE_SCHEMA = 'public'  -- 스키마 이름으로 필터링
ORDER BY 
    T.TABLE_NAME, C.ORDINAL_POSITION;
  • TABLE_NAME: 테이블의 이름을 나타냅니다.
  • TABLE_COMMENT: 테이블에 대한 설명(확장 속성)을 가져옵니다.
  • COLUMN_NAME: 칼럼의 이름을 나타냅니다.
  • COLUMN_COMMENT: 칼럼에 대한 설명(확장 속성)을 가져옵니다.
  • DATA_TYPE: 칼럼의 데이터 타입을 나타냅니다.
  • LENGTH: 문자열 칼럼의 최대 길이를 나타냅니다.
  • SCALE: 숫자 칼럼의 소수점 이하 자릿수를 나타냅니다.
  • DEFAULT_VALUE: 칼럼의 기본값을 나타냅니다.
  • IS_NULLABLE: 칼럼이 NULL을 허용하는지 여부를 나타냅니다.
  • IS_PK: 해당 칼럼이 PRIMARY KEY인지 여부를 나타냅니다.

 

 

반응형

'db > postgresql' 카테고리의 다른 글

windows postgresql on/off 자동 실행  (0) 2024.06.06
postgresql tool 사용하기 pgadmin 사용  (0) 2024.03.21
postgresql 계정 생성  (0) 2024.03.21
postgresql 설치, 설치확인  (0) 2024.03.21