[DB] Mysql(MariaDB) 테이블 정의서 만들기

MariaDB 테이블 정보 추출 요청을 받아 처리하던 중 유용한 쿼리 발견

1. Database 내 1개 테이블

아래 변수를 수정하여 사용하시면 됩니다.

  • DB_NAME : 데이터베이스 이름
  • TABLE_NAME : 테이블 이름
SELECT
    ORDINAL_POSITION '순번',
    COLUMN_NAME '필드명',
    DATA_TYPE 'DATA TYPE',
    COLUMN_TYPE '데이터 길이',
    COLUMN_KEY 'KEY',
    IS_NULLABLE 'NULL값여부',
    EXTRA '자동여부',
    COLUMN_DEFAULT '디폴트값',
    COLUMN_COMMENT '필드설명'
FROM `information_schema`.COLUMNS
WHERE TABLE_SCHEMA = 'DB_NAME' AND TABLE_NAME = 'TABLE_NAME'
ORDER BY TABLE_NAME, ORDINAL_POSITION

2. Database 내 전체 테이블

아래 변수를 수정하여 사용하시면 됩니다.

  • DB_NAME : 데이터베이스 이름
SELECT
    a.TABLE_NAME '테이블명',
    b.ORDINAL_POSITION '순번',
    b.COLUMN_NAME '필드명',
    b.DATA_TYPE 'DATA TYPE',
    b.COLUMN_TYPE '데이터길이',
    b.COLUMN_KEY 'KEY',
    b.IS_NULLABLE 'NULL값여부',
    b.EXTRA '자동여부',
    b.COLUMN_DEFAULT '디폴트값',
    b.COLUMN_COMMENT '필드설명'
FROM information_schema.TABLES a
JOIN information_schema.COLUMNS b ON a.TABLE_NAME = b.TABLE_NAME AND a.TABLE_SCHEMA = b.TABLE_SCHEMA
WHERE a.TABLE_SCHEMA = 'DB_NAME'
ORDER BY
    a.TABLE_NAME, b.ORDINAL_POSITION

 

System Info.
PyCharm 2019.1 EAP (Community Edition)
Build #PC-191.6014.12, built on March 6, 2019
JRE: 11.0.2+159 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1
R version 3.5.2 (2018-12-20)
Python 3.6.6
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
RStudio version 1.1.463