SQL

[SQL] MYSQL 데이터 타입 종류와 특징

또로롱 2023. 1. 17. 02:15

MYSQL 데이터 타입 종류와 특징

1. 데이터 타입을 선택하는 방법 

: 일반적으로 데이터를 저장하고 표현하는 데 문제가 없는 데이터 타입 중 가장 작은 Byte를 차지하는 데이터 타입을 골라야 한다. 보통 작은 데이터 타입일수록 디스크나 메모리, CPU 캐시에 더 적은 공간을 사용하기 때문에 더 빠른 처리가 가능하기 때문이다. 하지만 데이터 값을 너무 작게 추정해 데이터 타입의 범위를 벗어나는 데이터가 있는 경우 역시 주의해야 한다. 스키마 내 데이터 타입의 범위를 늘리는 작업은 매우 어렵고 시간도 많이 소요되기 때문이다. 

 

  기본적인 용량 외에도 데이터를 처리하는 데 소요되는 CPU 크기를 고려해 데이터 타입을 선정해야 한다. 문자 비교보다는 정수 비교가 소요가 더 적고, 날짜와 시간을 문자열로 지정하는 것보다 날짜 타입으로 적는 것이 더 효율적이듯 데이터 타입별 특성을 이해하고 쓰임에 맞게 설계해야 한다. 또한  저장 공간의 낭비를 줄이기 위해 NULL을 꼭 저장해야 되는 경우가 아니라면 컬럼은 되도록 NOT NULL로 정의한다.

2. 데이터 타입의 종류와 특징 

1) 문자형 데이터 타입

데이터 유형 정의
CHAR(n) 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다.
VARCHAR(n) 가변 길이 데이터 타입 (최대 65535byye) 지정된 길이보다 짧은 데이터 입력될 시 나머지 공간은 채우지 않는다.
TINYTEXT(n) 문자열 데이터 타입 (최대 255byte)
TEXT(n) 문자열 데이터 타입 (최대 65535byte)
MEDIUMTEXT(n) 문자열 데이터 타입 (최대 16777215byte)
LONGTEXT(n) 문자열 데이터 타입 (최대 4294967295byte)
JSON JSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다.

2) 숫자형 데이터 타입

데이터 유형
signed
unsinged
byte
정의
TINYINT(n)
0 ~ 255
1
정수형 데이터 타입
SMALLINT(n)
0 ~ 65535
2
정수형 데이터 타입
MEDIUMINT(n)
0 ~ 16777215
3
정수형 데이터 타입
INT(n)
0 ~ 4294967295
4
정수형 데이터 타입
BIGINT(n)
-9223372036854775808
~ 9223372036854775807
0 ~ 18446744073709551615
8
정수형 데이터 타입 - 무제한 수 표현할 수 있다.
DECIMAL
(길이, 소수)
전체자리수(precision)와 소수점자리수(scale)를 가짐
  • DECIMAL(5)의 경우: -99999 ~ 99999
  • DECIMAL(5, 1)의 경우: -9999.9 ~ 9999.9
  • DECIMAL(5, 2)의 경우: -999.99 ~ 999.99
가변
고정 소수형 데이터 타입
FLOAT
(길이, 소수)
-3.402823466×1038 ~ 3.402823466×1038
4
부동 소수형 데이터 타입(4byte)
DOUBLE
(길이, 소수)
-1.7976931348623157×10308 ~ 1.7976931348623157×10308
8
부동 소수형 데이터 타입(8byte)

3) 날짜형 데이터 타입

데이터 유형
정의
DATE
날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte)
TIME
시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte)
DATETIME
날짜와 시간 형태의 기간 표현 데이터 타입(8byte)
TIMESTAMP
날짜와 시간 형태의 기간 표현 데이터 타입(4byte) -시스템 변경 시 자동으로 그 날짜와 시간이 저장된다.
YEAR
년도 표현 데이터 타입(1byte)
LONGTEXT(n)
문자열 데이터 타입(최대 4294967295byte)
JSON
JSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다.