SQL Server에서 DECIMAL과 NUMERIC 데이터 형식간에 차이가 있습니까?
언제 DECIMAL을 사용해야하고 언제 NUMERIC을 사용해야합니까?
답변
그들은 동일합니다. 숫자는 기능적으로 소수와 같습니다.
MSDN : 10 진수 및 숫자
답변
이것이 바로 SQL2003 표준 (6.16.1 데이터 형식)이 두 가지에 대해 말한 것입니다.
<exact numeric type> ::=
NUMERIC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DECIMAL [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DEC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| SMALLINT
| INTEGER
| INT
| BIGINT
...
21) NUMERIC specifies the data type
exact numeric, with the decimal
precision and scale specified by the
<precision> and <scale>.
22) DECIMAL specifies the data type
exact numeric, with the decimal scale
specified by the <scale> and the
implementation-defined decimal
precision equal to or greater than the
value of the specified <precision>.
답변
내 지식으로는 NUMERIC과 DECIMAL 데이터 유형 사이에는 차이가 없습니다. 그들은 서로 동의어이며 둘 중 하나를 사용할 수 있습니다. DECIMAL 및 NUMERIC 데이터 유형은 고정밀도 및 스케일을 가진 숫자 데이터 유형입니다.
편집하다:
몇몇 동료들과 이야기하는 것은 아마도 DECIMAL이 ANSI SQL 표준이고 NUMERIC이 프로그래밍 언어에서 더 일반적으로 발견되는 것과 같은 Mircosoft가 선호하는 것과 관련이 있습니다. …아마도 😉
답변
십진수 및 숫자 데이터 형식은 고정밀도 및 스케일이 고정 된 숫자 데이터 형식입니다.
-- Initialize a variable, give it a data type and an initial value
declare @myvar as decimal(18,8) or numeric(18,8)----- 9 bytes needed
-- Increse that the vaue by 1
set @myvar = 123456.7
--Retrieve that value
select @myvar as myVariable
답변
Joakim Backman의 답변은 구체적이지만 더 명확 할 수 있습니다.
약간의 차이가 있습니다. SQL For Dummies, 8 판 (2013)에 따라 :
DECIMAL 데이터 유형은 NUMERIC과 유사합니다. … 차이점은 구현시 사용자가 지정한 것보다 더 큰 정밀도를 지정할 수 있다는 것입니다. 그렇다면 구현시 더 큰 정밀도를 사용합니다. 정밀도 또는 스케일을 지정하지 않으면 구현은 NUMERIC 유형과 마찬가지로 기본값을 사용합니다.
일부 SQL 구현의 차이점 은 데이터 무결성 에있는 것 같습니다 . DECIMAL은 NUMERIC이 아닌 일부 시스템 기본값을 기반으로 정의 된 것에서 오버플로를 허용합니다.
답변
그들은 정확히 같습니다. 사용할 때 일관성이 있습니다. 데이터베이스에서 그중 하나를 사용하십시오