Server/MariaDB
[MariaDB] 데이터형식
클리엘
2021. 7. 21. 15:16
728x90
1. 숫자
형식 | 바이트 | 범위 |
bit(n) | n/8 | |
tinyint | 1 | -128 ~ 127 |
smallint | 2 | -32,768 ~ 2,767 |
mediumint | 3 | -8,388,608 ~ 8,388,607 |
int / integer | 4 | -21억 ~ 21억 |
bigint | 8 | -900경 ~ 900경 |
float | 4 | -3,40E+38 ~ 1.17E-38 |
double / real | 8 | -1.22E-308 ~ 1.79E+308 |
decimal(m, [d]) / numeric(m, [d]) | 5~17 | -1038+1 ~ 1038-1 |
decimal / numeric 에서 m은 전체자리수를, d는 소수점 이하 자리수를 의미합니다.
숫자형식에서 부호없는 정수를 지정할 수도 있는데 이런경우 -로 표현될 비트를 사용하게 되어서 -값은 표현할 수 없게 되지만 tinyint의 경우 0~255까지의 숫자를 표현할 수 있는등 양수의 표현범위가 훨씬 넓어집니다. 부호없는 정수의 경우 unsigned 예약어를 붙여주면 됩니다.
2. 문자
형식 | 바이트 | 범위 |
char(n) | 1~255 | 255자의 고정길이 문자형 |
varchar(n) | 1~65535 | 65535까지의 가변길이 문자열 |
binary(n) | 1~255 | 고정길이 이진데이터 |
varbinary(n) | 1~255 | 가변길이 이진데이터 |
tinytext | 1-255 | 255자 Text 값 |
text | 1-65535 | 65535자 Text 값 |
mediumtext | 1-16777215 | 16777215자 Text 값 |
longtext | 1~4294967295 | 4294967295자 Text 값 |
tinyblob | 1~255 | BLOB 값 |
blob | 1~65535 | BLOB 값 |
mediumblob | 1~16777215 | BLOB 값 |
longblob | 1~4294967295 | BLOB 값 |
enum | 1 or 2 | 65535개 열거형 값 |
set | 1, 2, 3, 4, 8 | 64가지 데이터 값 |
고정길이는 예를들어 char(10) 으로 하면 'abc'만 들어가더라도 10자리를 모두 차지하게 됩니다. 반면 가변길이는 들어간 문자수만큼만 자리를 차지합니다. 공간활용면에서 가변길이가 유리하지만 성능면에서는 고정길이가 유리합니다.
BLOB는 Binary Large Object로서 사진, 동영상등 파일을 저장하는데 사용되며 text와 blob모두 크기에 따라서 형식을 달리 사용합니다. 참고로 longbob와 longtext는 최대 4GB의 데이터를 저장할 수 있습니다.
3. 날짜와 시간
형식 | 바이트 | 범위 |
date | 3 | 1001-01-01 ~ 9999-12-31 |
time | 3 | -838:59:59.000000 ~ 838:59:59.000000 |
datetime | 8 | 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
timestemp | 4 | 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
year | 1 | 1901 ~ 2155 |
timestemp는 time_zone 시스템 변수와 관련이 있으며 UTC 시간대로 변환하여 저장됩니다.
4. 기타
형식 | 바이트 | 범위 |
geometry | 공간데이터용 | |
json | 8 | JSON 데이터용 |
5. 변수의 사용
변수는 다음과 같이 사용할 수 있습니다. 다만 StorePrcedure같은 경우에는 declare 에약어로 @없이 선언되어야 합니다.
set @변수명 = 값;
select @변수명;
변수는 저장되는 값에 따라서 타입이 결졍됩니다.
6. 형변환
보통 형변환에는 Cast(), Convert() 2가지 함수가 사용됩니다.
Cast(값 as 변환형식);
Convert(값, 변환형식);
728x90