MySQL | MariaDB

[MariaDB] 존재하는 테이블, 컬럼 정보 조회 (SELECT ALL COLUMNS IN EVERY TABLES)

binaryJournalist 2024. 5. 16. 17:12
반응형

철수 전 기록남기기 2.

 

테이블정의서 작성 할 때 귀찮으니 모두 뽑기.

 

SELECT TABLE_SCHEMA
     , TABLE_NAME
     , COLUMN_NAME
     , ORDINAL_POSITION
     , COLUMN_DEFAULT
     , IS_NULLABLE
     , DATA_TYPE
     , COLUMN_TYPE
     , COLUMN_KEY
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE 1=1
   AND TABLE_SCHEMA IN ('스키마명') -- mariaDB의 경우 database 명이라고도 함
 ORDER BY TABLE_SCHEMA
        , TABLE_NAME
        , ORDINAL_POSITION
 ;

 

 

 

 응용해서 VO, DTO, Model generator 만들 때 사용했던 쿼리

 

SELECT CASE DATA_TYPE WHEN 'bigint'   THEN 'Long'
                      WHEN 'int'      THEN 'Integer'
                      WHEN 'datetime' THEN 'Date'
                      WHEN 'varchar'  THEN 'String'
                      ELSE DATA_TYPE
        END                                        AS DATA_TYPE
     , COLUMN_NAME                                 AS COLUMN_NAME
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE 1=1
   AND TABLE_SCHEMA IN ('스키마명') -- mariaDB의 경우 database 명이라고도 함
   AND TABLE_NAME   = '테이블명'
 ORDER BY TABLE_NAME
        , ORDINAL_POSITION
 ;

 

 

*번외로 여기서 잠깐 다뤘던 Oracle

SELECT TABLE_NAME
     , COULUMN_NAME
     , DATA_TYPE
     , DATA_LENGTH
  FROM USER_TAB_COLUMNS
 WHERE TABLE_NAME = '테이블명'
 ORDER BY COLUMN_ID ASC
;
반응형