이번 글에서는 숫자형 데이터 타입 중 DECIMAL과 NUMERIC에 대해 알아보고 실습해 보겠습니다.
MSSQL 데이터 타입
DECIMAL, NUMERIC
우선 마이크로소프트 문서에 의하면 DECIMAL과 NUMERIC을 구분지어 설명하지 않아서 같은 데이터 타입인 것으로 보입니다.
DECIMAL과 NUMERIC은 고정 정밀도 및 소수 자릿수가 있는 숫자 데이터 타입입니다.
MSSQL 데이터 타입
DECIMAL, NUMERIC 사용 방법
이름만 다를뿐 데이터 타입이 같으므로 DECIMAL로 실습해 보도록 하겠습니다.
사용 방법: decimal[ (p [ , s] ) ]
p (전체 자릿수)
전체 자릿수 값은 1에서 최대 38 사이여야 하며 기본 전체 자릿수는 18입니다.
s는 소수점의 자리수를 이야기합니다.
글로 보면 어려우니 SQL문으로 실습하면서 알아볼게요.
DECLARE @decimal DECIMAL(5, 3);
DECIMAL(5, 3) 으로 선언하면 위와 같이 소수점의 왼쪽과 오른쪽이 5개의 숫자를 사용할 수 있고 소수점의 최대 자릿수는 3이 됩니다. 그래서 정수는 99까지이고 소수점은 0.999까지 가능합니다.
DECLARE @decimal DECIMAL;
DECIMAL 데이터 타입을 위와 같이 선언할 경우 기본 전체 자릿수가 18로 지정됩니다.
DECLARE @decimal DECIMAL(18,0);
즉 위와 같이 선언한 것과 같은 것이라 소수점은 사용하지 않고 정수만 18자리로 사용하겠다는 의미입니다.
즉 이런 숫자를 대입 할 수 있습니다.
DECLARE @decimal DECIMAL(38,38);
위 데이터 타입의 의미는 정수는 사용하지 않고 소수점만 38자리를 사용하겠다는 의미입니다.
이렇게 소수점 38자리가 들어가고 정수가 0이 아닌 경우 오류가 발생하게 됩니다.
마무리
두 데이터 타입은 동일하며, 소수점과 정수의 자릿수를 지정하여 사용할 수 있습니다.
MSSQL 데이터 타입의 DECIMAL, NUMERIC에 대해 알아보고 실습해 보았습니다.
'MSSQL' 카테고리의 다른 글
[MSSQL] WHILE 반복문의 이해 및 실습 (2) | 2024.07.11 |
---|---|
[MSSQL] 프로시저 (Procedure) IF, ELSE, ELSEIF 분기 처리 (0) | 2024.07.10 |
[MSSQL] 숫자형 데이터 타입 smallmoney 실습 (0) | 2024.07.08 |
[MSSQL] 숫자형 데이터 타입 tinyint 실습 (0) | 2024.07.03 |
[MSSQL] 데이터 타입 (Data types) 의미와 BIT (0) | 2024.07.02 |