هل هناك أي فرق بين عشري وعددية في SQL Server؟
-
09-09-2019 - |
سؤال
هل هناك أي فرق بين أنواع البيانات العشرية والرقمية في SQL Server؟
متى يجب أن أستخدم عشري ومتى رقمي؟
المحلول
إنهم متشابهون. رقمي يعادل وظيفيا عشرية.
MSDN: عشري وعددية
نصائح أخرى
هذا هو ما تقول إليه أنواع بيانات SQL2003 (§ 6.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>.
على حد علمي، لا يوجد فرق بين أنواع البيانات الرقمية والعشرية. إنهم مرادفون لبعضهم البعض ويمكن استخدام أي واحد. أنواع البيانات العشرية والرقمية هي أنواع بيانات رقمية بدقة ثابتة ومقياس.
يحرر:
التحدث إلى عدد قليل من الزملاء ربما يكون له علاقة بعشري كونه معيار ANSI SQL والرقم الرقمي الذي يفضله MIRCOSOFT باعتباره أكثر شيوعا لغات البرمجة. ...يمكن ؛)
إجابة Joakim Backman محددة، ولكن هذا قد يجلب وضوحا إضافيا إليه.
هناك فرق بسيط. وفقا ل SQL للدمى، الطبعة الثامنة (2013):
نوع البيانات العشري يشبه الرقمية. ... الفرق هو أن تنفيذك قد يحدد دقة أكبر من ما تحدده - إذا كان الأمر كذلك، فإن التنفيذ يستخدم الدقة الأكبر. إذا لم تحدد الدقة أو الحجم، فإن التطبيق يستخدم القيم الافتراضية، كما يفعل مع النوع الرقمي.
يبدو أن الفرق في بعض تطبيقات SQL في سلامة البيانات. يسمح العشرية بالفيضان من ما يتم تعريفه بناء على بعض الإعدادات الافتراضية للنظام، حيث لا يعمل الرقمي.
إنها مرادفات، لا يوجد فرق على الإطلاق. أنواع البيانات الرقمية هي أنواع بيانات رقمية مع دقة ومقياس ثابتة.
-- 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
هم سواء بالضبط. عند استخدامها تكون متسقة. استخدام واحد منهم في قاعدة البيانات الخاصة بك