Published 2022. 8. 25. 09:26

문자형 데이터타입

CHAR(M) 고정 길이를 가지는 문자열을 저장한다. (M : 0~255)
VARCHAR(M) 가변 길이를 가지는 문자열을 저장하며, 후행 공백을 제거하지 않는다. (M : 0~65,535)
M이 0~255 이면 문자길이+1byte, ~65,535 이면 문자길이+2byte
TINYBLOB
TINYTEXT
1~255 개의 가변 길이를 가지는 문자열을 저장한다. (문자길이+1byte)
BLOB
TEXT
1~65,535 개의 가변 길이를 가지는 문자열을 저장한다. (문자길이+2byte)
BLOB 는 바이너리 데이터, TEXT 는 문자 데이터 저장에 유리하다.
MEDIUMBLOB
MEDIUMTEXT
1~16,777,215 개의 가변 길이를 가지는 문자열을 저장한다. (문자길이+3byte)
LONGBLOB
LONGTEXT
1~429,496,729 개의 가변 길이를 가지는 문자열을 저장한다. (문자길이+4byte)
ENUM 문자 형태인 value 를 숫자로 저장하여 최대 65,535 개의 문자열 중 한가지를 반환
255 이하 value 는 1바이트, 65,535 이하 value 는 2바이트
SET 비트 연산 열거형, ENUM 형과 동일하게 문자열 값을 정수값으로 매핑하여 저장한다.
  • ENUM 은 반드시 하나의 값만 저장되며, SET 은 다중 선택이 가능합니다.

 

숫자형 데이터 타입

정수 유형

데이터타입 범위 바이트
signed unsigned
TINYINT -128 ~ 127 0 ~ 255 1 바이트
SMALLINT -32768 ~ 32767 0 ~ 65535 2 바이트
MEDIUMINT -8388608 ~ 8388607 0 ~ 16777215 3 바이트
INT -2147483648 ~ 2147483647 0 ~ 4294967295 4 바이트
BIGINT -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 바이트
DOUBLE -1.7976931348623157×10308 ~ 1.7976931348623157×10308 8 바이트

 

고정 소수점 유형

DECIMAL(M,D)
NUMERIC
M자리 정수(정밀도)와 D자리 소수점(스케일)으로 표현
최대 65자리까지 표현할 수 있다.

 

 

부동 소수점 유형

FLOAT(M,D) 정밀도가 작은 부동소수점을 표현. UNSIGNED 인 경우 음수 값을 허용하지 않는다.
-3.402823466E+38 ~ 3.402823466E+38
DOUBLE(M,D) 보통 크기의 부동소수점을 표현. UNSIGNED 인 경우 음수 값을 허용하지 않는다.
-1.7976931348623157E+308 ~ 1.7976931348623157E+308

 

FLOAT, DOUBLE 등의 부동 소수점 유형은 MySQL 8.0.17 이후 버전부터 사용되지 않습니다.
참고문서 : MySQL 8.0 Reference > Problems with Floating-Point Values

 

 

날짜형

DATE 날짜를 표현하는 타입 (3바이트)
1000-01-01 ~ 9999-12-31
DATETIME 날짜와 시간을 같이 나타내는 타입 (8바이트)
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMP 1970-01-01 00:00:00 ~ 2037-01-19 03:14:07
INSERT, UPDATE 연산에 유리하다. (4바이트)
TIME 시간을 표현하는 타입 (3바이트)
-838:59:59 ~ 838:59:59
YEAR 연도를 나타낸다. (1바이트)
1901 ~ 2155, 70 ~ 69 (1970~2069)
YEAR(4) 와 같이 명시적인 길이를 표기한 데이터 유형은 MySQL 8.0.19 이후 버전부터 사용되지 않습니다.
YEAR(2) 와 같이 두 자리로 표기하는 데이터 유형은 MySQL 5.7 이후 버전부터 지원하지 않습니다.
참고문서 : MySQL 5.7 Reference > 2-Digit YEAR(2) Limitations and Migrating to 4-Digit YEAR

 

 

 

'MYSQL' 카테고리의 다른 글

MYSQL - utf8  (0) 2022.09.10
기본 쿼리문  (0) 2022.08.25
SpringBoot + MySQL + JPA과 연동하기 + 테스트  (0) 2022.08.24
Windows10에서 환경설정  (0) 2022.08.24
복사했습니다!