MySQL 테이블 컬럼의 데이터 타입 확인하기
MySQL에서 테이블 각 컬럼(열)의 데이터 타입을 확인하고 싶다면 information_schema.columns 뷰를 활용하면 됩니다. 이 시스템 뷰에는 데이터베이스 내 모든 테이블의 컬럼 정보가 저장되어 있어, 별도의 도구 없이 SQL 쿼리만으로 손쉽게 스키마 구조를 파악할 수 있습니다.
기본 문법
SELECT DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = '데이터베이스명'
AND table_name = '테이블명';
table_schema에는 데이터베이스 이름을, table_name에는 대상 테이블 이름을 지정합니다.
예제 테이블 생성
실습을 위해 먼저 다양한 데이터 타입을 가진 테이블을 만들어 보겠습니다.
mysql> CREATE TABLE DataTypeDemo
-> (
-> Id int,
-> Address varchar(200),
-> Money decimal(10,4)
-> );
Query OK, 0 rows affected (0.60 sec)
위 테이블은 세 개의 컬럼으로 구성되어 있습니다. 각각 정수형(int), 문자열(varchar), 소수(decimal) 타입입니다.
데이터 타입만 조회하기
이제 앞서 소개한 쿼리를 실행해 컬럼의 데이터 타입을 확인해 보겠습니다.
mysql> SELECT data_type
FROM information_schema.columns
WHERE table_schema = 'business'
AND table_name = 'DataTypeDemo';
실행 결과는 다음과 같습니다.
+-----------+
| DATA_TYPE |
+-----------+
| int |
| varchar |
| decimal |
+-----------+
3 rows in set (0.00 sec)
컬럼명과 함께 조회하기
어떤 컬럼이 어떤 타입인지 한눈에 알아보려면 COLUMN_NAME도 함께 조회하는 것이 좋습니다.
mysql> SELECT column_name, data_type
FROM information_schema.columns
WHERE table_schema = 'business'
AND table_name = 'DataTypeDemo';
컬럼명에 해당하는 데이터 타입이 함께 출력됩니다.
+-------------+-----------+
| COLUMN_NAME | DATA_TYPE |
+-------------+-----------+
| Id | int |
| Address | varchar |
| Money | decimal |
+-------------+-----------+
3 rows in set (0.00 sec)
추가 팁
information_schema.columns 뷰에서는 데이터 타입 외에도 다양한 메타데이터를 확인할 수 있습니다. 예를 들어 CHARACTER_MAXIMUM_LENGTH(최대 길이), NUMERIC_PRECISION(숫자 정밀도), IS_NULLABLE(NULL 허용 여부), COLUMN_KEY(키 여부) 등의 컬럼을 함께 조회하면 테이블 구조를 더욱 상세하게 분석할 수 있습니다. 또한 MySQL 8.0부터는 SHOW COLUMNS FROM 테이블명; 또는 DESCRIBE 테이블명; 명령으로도 비슷한 정보를 빠르게 확인할 수 있으니 상황에 맞게 활용하시기 바랍니다.