سبد (0)

فرق داده Decimal و Numeric

آشنایی با نوع داده Decimal و Numeric

برای ذخیره اعداد اعشاری و یا صحیح از نوع داده Decimal یا Numeric استفاده می شود.

این Data Type ها از نوع Exact Numeric هستند. یعنی دقیقاً مقداری را که به آنها نسبت می دهیم ذخیره می کنند. در واقع برخلاف نوع داده real و یا float که داده ها را بصورت نماد ریاضی نمایش می دهند، نوع داده Decimal و Numeric اعداد را به همان صورتی که هستند ذخیره می کنند. (برای کسب اطلاعات بیشتر در مورد DataType های مختلف به مطلب آموزش SQL-انواع داده مراجعه فرمایید)

عملکرد هر دو نوع داده Decimal و Numeric شبیه به هم است. اما نوع داده Decimal یک تفاوت کوچک از لحاظ Performance دارد که در ادامه خواهید دید.

بسته به مقدار پارامترهای Precision و Scale از 5 الی 17 بایت اشغال می کنند.

  1. Precision بین 1 تا 9 : 5 بایت
  2. Precision بین 10 تا 19 : 9 بایت
  3. Precision بین 20 تا 28 : 13 بایت
  4. Precision بین 29 تا 38 : 17 بایت

نحوه ی تعریف:

نوع داده  Decimal

Decimal (P,S)
Numeric (P,S)

 پارامترها:

پارامتر توضیح
p

ماکزیمم تعداد ارقام (Precision)
شامل هم ارقامی که سمت راست علامت اعشار می آیند و هم ارقامی که سمت چپ علامت اعشار می آیند.
پارامتر p باید مقداری بین صفر تا 38 باشد. مقدار پیش فرض 18 می باشد.

s

ماکزیمم تعداد اعشار (Scale)
پارامتر s باید عددی بین صفر تا p باشد. مقدار پیش فرض عدد صفر است.

نکته: برای پایگاه داده های حجیم که قصد ذخیره مثلاً پول را داریم بهتر است از نوع داده Decimal بجای Numeric استفاده کنیم. دلیل این انتخاب را در ادامه خواهید دید.


مثال عملی مربوط به  Decimal و Numeric

 آشنایی با نوع داده Decimal,Numeric

DECLARE @D DECIMAL(38,0)=12345678901234567890123456789012345678
DECLARE @N NUMERIC(38,0)=12345678901234567890123456789012345678
SELECT @D
SELECT @N
SELECT DATALENGTH(@D)
SELECT DATALENGTH(@N)
DECLARE @D DECIMAL(6,3)
SET @D=1223.121
GO

خروجی:


12345678901234567890123456789012345678
12345678901234567890123456789012345678
17
17
Arithmetic overflow error converting numeric to data type numeric.

توجه داشته باشید که در مثال بالا، پارامتر D@ از نوع Decimal با ماکزیمم اعداد 6 و ماکزیمم اعشار 3 تعریف شده است و چون عدد 1223.121 را به آن انتساب داده ایم، با خطا مواجه می شویم.


در ادامه بحث  Decimal و Numeric  خواهید دید ...!

با خرید جلسه 6 از بسته آموزشی "افزایش کارایی پایگاه داده" موارد زیر را خواهید دید:

  1. قابلیت Variable Decimal Storage چیست؟ و چگونه می تواند در مورد نوع داده Decimal کارآیی یا Performance را افزایش دهد.
  2. چگونه قابلیت Variable Decimal Storage را روی یک پایگاه داده فعال کنم؟
  3. چرا در سیستم های بانکی بهتر است برای ذخیره پول از نوع داده Decimal اسفاده گردد؟

دسترسی به موارد آموزشی بالا در بسته خریداری شده

  • شماره جلسه: 6
  • نام فایل ویدئو: 01
  • فرمت فایل: mp4.

نقطه شروع بحث بالا (Decimal و Numeric) در ویدئو:  37:20


برای خرید و دانلود کامل آموزش پیشرفته SQL Server کلیک کنید.

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه