
해당글은 '오라클로 배우는 데이터베이스 입문'과 '코딩의 시작, TCP School'에서 참고 작성되었습니다.
데이터베이스에 저장하는 데이터는 다양한 형태를 가지고 있습니다. 숫자로 표현이 가능한 데이터도 있고, 여러가지 문자를 포함한 데이터도 있고, 날짜를 표현해야하는 데이터도 있습니다.
이러한 각각의 컬럼들을 정의 할 때, 어떠한 형식을 갖고있는지 제약 사항을 갖고있는지를 정의하는 것이 '데이터 타입(Data Type)' 입니다.
숫자형
1) 정수형
타입명 | 저장공간 | 범위 | Unsigned시 범위 |
---|
TINYINT(n) | 1byte | -128 ~ 127 | 0 ~ 255 |
SMALLINT(n) | 2byte | -32768 ~ 32767 | 0 ~ 65535 |
MEDIUMINT(n) | 3byte | -8388608 ~ 8388607 | 0 ~ 16777215 |
INT(n) | 4byte | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
BIGINT(n) | 8byte | -9223372036854775808 ~ 9223372036854775807 | 0 ~ 18446744073709551615 |
2) 고정 소수점
타입명 | 설명 | 표기 방법 |
---|
DECIMAL(길이,소수) | 실수의 값을 정확하게 표현하기 위해 사용 | 소수부의 자릿수를 미리 정해 놓고, 고정된 자릿수로만 소수 부분을 표현하는 방식. 길이는 65자리까지, 소수부분은 0인 경우 소수를 갖지 않는 특징이 있음. |
3) 부동 소수점
타입명 | 설명 |
---|
FLOAT(길이,소수) | 부동 소수형 데이터 타입(4byte) |
DOUBLE(길이,소수) | 부동 소수형 데이터 타입(8byte) |
문자형
타입명 | 설명 | 범위 |
---|
CHAR(n) | 고정 길이를 가지는 문자열을 저장 | 0 ~ 255 |
VARCHAR(n) | 가변 길이를 가지는 문자열을 저장하며, 후행 공백을 제거하지 않음 | 0 ~ 65535 |
TINYTEXT(n) | 1~255 개의 가변 길이를 가지는 문자열을 저장 | 문자길이+1byte |
TEXT(n) | 1~65,535 개의 가변 길이를 가지는 문자열을 저장 | 문자길이+2byte |
MEDIUMTEXT(n) | 1~16,777,215 개의 가변 길이를 가지는 문자열을 저장 | 문자길이+3byte |
LONGTEXT(n) | 1~429,496,729 개의 가변 길이를 가지는 문자열을 저장한다. | 문자길이+4byte |
ENUM | 문자 형태의 value값을 숫자로 저장 | 255 이하 value는 1byte, 65535 이하 value는 2byte |
SET | 비트 연산 열거형; 미리 정의한 집합 안의 요소 중 여러 개를 동시에 저장할 수 있는 타입 | 최대 64개의 SET 데이터를 포함 |
날짜와 시간 타입
타입명 | 설명 | 기본형식 | 저장 범위 |
---|
DATE | 날짜 저장 타입 | YYYY-MM-DD | '1000-01-01' ~ '9999-12-31' |
DATETIME | 날짜와 시간 저장 타입 | YYYY-MM-DD HH:MM:SS | '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59' |
TIMESTAMP | 타임스탬프 저장 타입 | | '1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC |
TIME | 시간 저장 타입 | HH:MM:SS | '-838:59:59'~ '838:59:59' |
YEAR | 년도 저장 타입 | YYYY | '1901' ~ '2155' |