MariaDB에서 제공하는 기본 데이터 유형으로는 문자형, 숫자형, 날짜형이 있습니다.
구분 | 데이터 유형 | 크기(byte) | 설명 |
---|---|---|---|
기본 | char(M) | 0~255 | - 고정길이 문자형 : 지정한 길이보다 짧은 문자열이 입력될 시 데이터 남은자리를 전부 공백으로 채움(메모리차지) |
varchar(M) | 0~65,535 | - 가변길이 문자형 : 지정한 길이보다 짧은 문자열이 들어오면 해당 문자열 길이만큼만 메모리차지 - 실제 저장하려는 문자의 길이보다 1~2byte 더 필요 (속도가 char 보다 느림) | |
binary(M) | 0~255 | - 고정길이 이진 데이터 값 | |
varbinary(M) | 0~255 | - 가변길이 이진 데이터 값 | |
text | tinytext | 0~255 | - 대용량의 문자열을 저장할 수 있습니다. - 해당 데이터 유형 타입은 기본키로 설정할 수 없습니다. - 처리속도가 char보다 느립니다. |
text | 0~65,535 | - 대용량의 문자열을 저장할 수 있습니다. - 해당 데이터 유형 타입은 기본키로 설정할 수 없습니다. - 처리속도가 char보다 느립니다. | |
mediumtext | 0~16,777,215 | - 대용량의 문자열을 저장할 수 있습니다. - 해당 데이터 유형 타입은 기본키로 설정할 수 없습니다. - 처리속도가 char보다 느립니다. | |
longtext | 0~4GB | - 대용량의 문자열을 저장할 수 있습니다. - 해당 데이터 유형 타입은 기본키로 설정할 수 없습니다. - 처리속도가 char보다 느립니다. | |
blob | tinyblob | 0~255 | - 대용량의 사진, 동영상 및 문서 등의 파일을 저장할 수 있습니다. |
blob | 0~65,535 | - 대용량의 사진, 동영상 및 문서 등의 파일을 저장할 수 있습니다. | |
mediumblob | 0~16,777,215 | - 대용량의 사진, 동영상 및 문서 등의 파일을 저장할 수 있습니다. | |
longblob | 0~4GB | - 대용량의 사진, 동영상 및 문서 등의 파일을 저장할 수 있습니다. |
데이터 유형 | 크기(byte) | 설명 |
---|---|---|
date | 3 | - 형식 : YYYY-MM-DD - 지원범위 : 1000-01-01 ~ 9999-12-31 |
time | 3 | - 형식 : HH:MM:SS.ssssss - 지원범위 : -838:59:59:999999 ~ 838:59:59:999999 |
datetime | 8 | - 형식 : YYYY-MM-DD HH:MM:SS.ffffff - 지원범위 : 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999 |
timestamp | 4 | - 형식 : YYYY-MM-DD HH:MM:SS.ffffff - 지원범위 : 1970-01-01 00:00:01 (UTC) ~ 2038-01-19 03:14:07 (UTC) |
year | 1 | - 형식 : YYYY - 지원범위 : 1901 ~ 2155 |
구분 | 데이터 유형 | 크기(byte) | 수치 범위 | 설명 |
---|---|---|---|---|
이진 | bit(M) | M/8 | 1~64 bit 표현값 | - M은 1~64 비트 수 입력가능 |
정수 | tinyint | 1 | -128~127 0~255 | signed : 부호 있는 정수형 unsigned : 부호 없는 정수형 |
smaillint | 2 | -32,768~32,767 0~65,535 | signed : 부호 있는 정수형 unsigned : 부호 없는 정수형 | |
mediumint | 3 | -8,388,608~8,388,607 0~16,777,215 | signed : 부호 있는 정수형 unsigned : 부호 없는 정수형 | |
int integer | 4 | -2,147,483,648~2,147,483,647 0~4,294,967,295 | signed : 부호 있는 정수형 unsigned : 부호 없는 정수형 | |
bigint | 8 | -92,23,372,036,854,775,808~92,23,372,036,854,775,807 0~18,446,744,073,709,551,615 | signed : 부호 있는 정수형 unsigned : 부호 없는 정수형 | |
고정 소수점 | decimal(M,D) dec(M,D) numeric(M,D) fixed(M,D) | - | - M : 1~65 | - M : 생략되면 10 - D : 생략되면 0 |
부동 소수점 | double(M,D) | 8 | 2.23e-308 ~ ~1.8e+308의 값을 15자리 정밀도로 저장 | - M, D가 생략되면 하드웨어에서 사용하는 한계까지 저장 |
float(M,D) | 4 | ~1.18e-38 ~ ~3.4e+38의 값을 7자리 정밀도로 저장 | - M, D가 생략되면 하드웨어에서 사용하는 한계까지 저장 |
💡데이터 유형 뒤에 괄호는?
데이터 유형 뒤에 괄호가 있을 경우 해당 타입으로 컬럼을 만들 때 입력해줘야하는 값을 말합니다.
- M : 문자 길이를 지정하는 정수 (0 = 빈문자열)
- D : 소수점 아래 자릿 수
💡unsigned, signed
- unsigned : 부호 없는 정수형 (음수 저장불가)
- signed : 부호 있는 정수형 (음수, 양수 저장 가능)
MariaDB로 따라 하며 배우는 SQL프로그래밍 데이터베이스 기초에서 실무까지 - 나익수, 서연경 지음
위 책을 공부하며 작성하고 있습니다!