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