DB 데이터/MySQL 기본기 & 문법 정리

기본 데이터 타입 정리 (INT, VARCHAR, DATE 등)

backend.log 2025. 4. 22. 18:01
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
반응형