업무를 진행하면서 어렴풋이 기억나는 듯.. 하던 자료형을 마주했다.
스케줄데이터를 남기는 DB인데, 순차적으로 증가하며 정확한 연산을 위한 데이터를 요하는 테이블이었다.
Mysql에서는 데이터를 저장하기 위한 다양한 자료형을 제공한다.
크게 분류하면
- 숫자 타입
- 문자열 타입
- 날짜와 시간타입
이번 포스팅에서는 숫자타입 중, 소수점을 표기할 수 있는 DECIMAL 타입을 소개한다.
DECIMAL은 대부분의 관계형데이터 쿼리나 Java, Python, C++, C#과 같은 개발언어 등 범용적으로, 그리고 비슷한 활용으로서 사용되지만 언어에 따라 다소 차이가 있으니 유의해야 한다.
본 포스팅은 MARIADB을 기준으로 작성되었다
고정 소수점 자료형 DECIMAL
DECIMAL은 고정 소수점 자료형으로
다시 말해 소수점 자릿수를 미리 정해놓고 고정자릿수로 소수 부분까지 표현할 수 있는 자료형이다.
입력된 데이터에 따라 길이가 변하는 가변과 달리, 지정해 놓은 자릿수보다 짧은 자리의 소수가 들어오더라도 명기해 놓은 자릿수만큼 데이터가 표기된다.
여기까지 이해가 어렵다면 문법을 먼저 살펴보자
문법
DECIMAL(N, D)
-N은 소수 부분을 포함한 실수의 총자릿수를 나타내며 최댓값은 65
-D는 소수점 이하의 자릿수를 의미, D가 0 일시 소수점 이하 자리를 포함하지 않는 정수 형태로 저장
위의 설명으로 돌아가 DECIMAL(1,2)로 선언이 되어있는 칼럼에,
1.45 / 1.2 / 2 등의 데이터들이 들어온다고 했을 때
1.45 / 1.20 / 2.00의 형태로 데이터가 저장된다고 볼 수 있다.
반대로 N자리에 DECIMAL( 3,0)으로 선언이 되어있는 칼럼이 있다고 할 때
1 / 10 / 100 등의 데이터가 들어온다고 가정했을 때
001 / 010 / 100 등의 데이터가 저장된다고 볼 수 있다.
DECIMAL자료형의 장단점
장점
- 정확한 숫자값을 계산할 수 있어 계산에 대한 오차가 발생하지 않는다.
- 금액, 수량 등과 같은 정확한 값을 저장해야 하는 칼럼에 적합
- 계산할 때의 속도가 빠르다
- 큰 숫자 데이터를 저장하기에 용이하다
단점
- 다른 숫자형 타입에 비해 저장공간이 크다는 단점이 있다.
- 정수형 데이터에 비해 속도가 느리다.
- 계산이 필요한 CPU자원이 많이 필요하다
DECIMAL타입의 활용
DECIMAL자료형은 정수형 자료형의 연산과정에서 오류가 발생하는 정수 오버플로우(Integer Overflow)가 발생하지 않기 때문에 아래와 같은 분야에 관련된 개발이나 데이터를 활용할 때 도움이 될 수 있다.
- 정확한 연산이 필요한 금융분야에서 활용할 수 있다
- 소수점 단위의 정확한 연산이 필요한 과학, 제조, 전자상거래등의 분야에서 활용될 수 있다.
'데이터베이스 > MariaDB' 카테고리의 다른 글
백업 테이블 생성 및 데이터 백업 및 복구 (0) | 2023.08.07 |
---|---|
[MYSQL] 날짜데이터를 저장하고자 할 때의 자료형_ 날짜형(DATETIME)을 사용할까? , 문자열(VARCHAR)타입을 사용할까? (1) | 2023.03.04 |
컬럼의 NULL처리에 용이한 함수 - IFNULL() (0) | 2023.02.02 |
조인(JOIN)_JOIN의 개요 / INNER JOIN(내부 조인) (0) | 2022.11.11 |
[프로그래머스]Lv 2. 중성화 여부 파악하기 / SQL의 조건 / CASE THEN 문법 (0) | 2022.11.10 |