728x90
반응형
📘 1-3. 기본 데이터 타입 정리 (INT, VARCHAR, DATE 등)
MySQL에서 테이블을 만들 때 가장 먼저 고민해야 할 것이 데이터 타입입니다.
각 칼럼의 용도에 맞는 타입을 정확히 설정하면 저장 공간을 줄이고, 검색 속도도 높일 수 있습니다.
🔢 정수형 (INT, TINYINT, BIGINT 등)
데이터 타입 | 범위 (SIGNED 기준) | 사용 예시 |
---|---|---|
TINYINT |
-128 ~ 127 | 1~100 이하 상태값 (예: 활성화 여부) |
SMALLINT |
-32,768 ~ 32,767 | 등급, 카운트 등 소규모 숫자 |
INT (INTEGER) |
-2,147,483,648 ~ 2,147,483,647 | 유저 ID, 게시물 번호 등 일반 숫자 |
BIGINT |
-9경 ~ 9경 | 로그 ID, UUID 해시 등 초대형 숫자 |
✔️ 실무 TIP: 숫자 크기를 과하게 잡지 말고, 최대값 기준으로 여유 있게 설정하세요.
예를 들어 상태값은 TINYINT(1)
가 충분합니다.
🔤 문자열 (CHAR, VARCHAR, TEXT)
CHAR(n)
– 고정 길이. 항상 n자리 확보 (공백 포함)VARCHAR(n)
– 가변 길이. 필요한 만큼만 저장TEXT
– 긴 텍스트 (최대 65,535자), 인덱싱 제한 있음
📌 사용 예시
상황 | 추천 타입 |
---|---|
이메일, 닉네임, 제목 | VARCHAR(50~255) |
상태코드 (Y/N, M/F) | CHAR(1) |
글 본문, 댓글 내용 | TEXT |
⚠️ 주의: TEXT
타입은 WHERE 조건
이나 INDEX
사용에 제한이 있으므로 신중히 사용하세요.
📅 날짜/시간형 (DATE, DATETIME, TIMESTAMP)
DATE
– YYYY-MM-DD (예:'2025-04-15'
)DATETIME
– YYYY-MM-DD HH:MM:SS (예:'2025-04-15 21:00:00'
)TIMESTAMP
– UTC 기준 시간 저장. 자동 생성/수정 타임스탬프에 유용
실무에서 자주 쓰이는 구조:
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
✅ 실무 TIP:
- 날짜 비교나 통계 쿼리를 작성할 땐 DATE_FORMAT
또는 DATE()
함수 활용
- TIMESTAMP
는 타임존 이슈 주의 (기본 UTC 기준)
📌 정리
- 숫자: INT, BIGINT 등은 범위 기반으로 선택
- 문자열: VARCHAR가 대부분의 상황에 적합, TEXT는 신중히
- 날짜: DATETIME과 TIMESTAMP의 차이 이해 필수
타입을 제대로 설계하면 성능, 저장 공간, 유지 보수성 모두 좋아집니다. 설계 단계에서 한 번 더 고민해보세요!
📚 다음 글 예고
다음 포스팅에서는 CREATE, INSERT, SELECT 문법의 기초를 다룹니다.
👉 1-4. CREATE, INSERT, SELECT 문 기초
🏷️ 추천 태그
- #MySQL
- #SQL데이터타입
- #VARCHAR
- #INT
- #DATETIME
- #MySQL기초
- #백엔드개발
728x90
반응형
'DB 데이터 > MySQL 기본기 & 문법 정리' 카테고리의 다른 글
정렬(ORDER BY), 그룹화(GROUP BY), 집계 함수 정리 (0) | 2025.04.24 |
---|---|
WHERE 절과 연산자 정리 (0) | 2025.04.23 |
CREATE, INSERT, SELECT 문 기초 (0) | 2025.04.23 |
MySQL이란? 설치부터 CLI/GUI 환경까지 (1) | 2025.04.22 |