데이터베이스/MySQL

[MySQL] SQL 데이터타입 자료형 종류

webvillain 2021. 5. 31. 14:51

1. 숫자 타입

타입 저장공간
(byte)
숫자형 정수형 BOOL    0은 false, 0이 아닌 값은 true 로 간주하는 논리형 데이터
 ENUM(Y,N) 또는 TINYINT(1) 로 대체하여 사용하는 것을 권장
TINYINT(M) 1 부호 있는 수는 -128 ~ 127
부호 없는 수는 0 ~ 225 까지 표현
SMALLINT(M) 2 부호 있는 수는 -32768 ~ 32767
부호 없는 수는 0 ~ 65535 까지 표현
MEDIUMINT(M) 3 부호 있는 수는 -8388608 ~ 8388607
부호 없는 수는 0 ~ 16777215 까지 표현
INT(M)
INTEGER(M)
4 부호 있는 수는 -2147483648 ~ 2147483647
부호 없는 수는 0 ~ 4294967295 까지 표현
BIGINT(M) 8 부호 있는 수는 -92233720036854775808 ~ 92233720036854775807
부호 없는 수는 0~18446744073709551615
고정
소수점
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
비트값 BIT(M)   * 비트값 타입. 즉, 0과 1로 구성되는 binary 값을 저장한다.
(M : 1~64, 생략 시 기본값은 1 로 설정)

 

2. 날짜 & 시간 타입

타입
저장공간
(byte)
날짜형 DATE 3 * 날짜를 표현하는 타입
1000-01-01 ~ 9999-12-31
DATETIME 8 * 날짜와 시간을 같이 나타내는 타입
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMP 4 1970-01-01 00:00:00 ~ 2037-01-19 03:14:07
* INSERT, UPDATE 연산에 유리하다.
TIME 3 * 시간을 표현하는 타입
-838:59:59 ~ 838:59:59
YEAR 1 * 연도를 나타낸다.
1901 ~ 2155, 70 ~ 69 (1970~2069)

 

3. 문자 타입

타입
문자형 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 형과 동일하게 문자열 값을 정수값으로 매핑하여 저장한다.