[sql-server] SQL Server에서 DECIMAL과 NUMERIC간에 차이가 있습니까?

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이 아닌 일부 시스템 기본값을 기반으로 정의 된 것에서 오버플로를 허용합니다.


답변

그들은 정확히 같습니다. 사용할 때 일관성이 있습니다. 데이터베이스에서 그중 하나를 사용하십시오


답변