MySQL에서 사용하는 **데이터 타입(Data Type)**은 크게 몇 가지 범주로 나뉩니다.
1️⃣ 숫자형 (Numeric Types)
🔹 정수형
TINYINT 아주 작은 정수 (1바이트)
SMALLINT 작은 정수
MEDIUMINT 중간 크기 정수
INT / INTEGER 일반적인 정수 (가장 많이 사용)
BIGINT 아주 큰 정수
✔ 옵션
UNSIGNED : 음수 없이 양수만 사용
AUTO_INCREMENT : 자동 증가 (PK에 자주 사용)
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
🔹 실수형 / 소수형
FLOAT 소수 (정밀도 낮음)
DOUBLE 소수 (정밀도 높음)
DECIMAL(M,D)
정확한 소수 (금액 계산용)
price DECIMAL(10,2)
2️⃣ 문자형 (String Types)
CHAR(n) 고정 길이 문자열
VARCHAR(n) 가변 길이 문자열 (가장 많이 사용)
TEXT 긴 문자열
MEDIUMTEXT 더 긴 텍스트
LONGTEXT 매우 긴 텍스트
name VARCHAR(100)
content TEXT
3️⃣ 날짜 / 시간 타입 (Date & Time)
DATE 날짜 (YYYY-MM-DD) TIME 시간 (HH:MM:SS)
DATETIME 날짜 + 시간
TIMESTAMP 날짜 + 시간 (자동 갱신 가능)
YEAR 연도
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
4️⃣ 논리형 (Boolean)
BOOLEAN TRUE / FALSE (실제로는 TINYINT)
is_active BOOLEAN
5️⃣ 열거형 / 집합형
ENUM 정해진 값 중 하나 SET 여러 값 선택 가능
status ENUM('READY','PAID','CANCEL')
6️⃣ 이진 데이터 (Binary)
BINARY 고정 길이 바이너리
VARBINARY 가변 길이 바이너리
BLOB 바이너리 데이터 (이미지, 파일 등)
7️⃣ JSON 타입 (MySQL 5.7+)JSON
JSON 데이터 저장
data JSON
🔥 초보자 추천 조합
ID: INT AUTO_INCREMENT
문자열: VARCHAR
내용: TEXT
금액: DECIMAL
날짜: TIMESTAMP