فرق داده Decimal و Numeric
آشنایی با نوع داده Decimal و Numeric
برای ذخیره اعداد اعشاری و یا صحیح از نوع داده Decimal یا Numeric استفاده می شود.
این Data Type ها از نوع Exact Numeric هستند. یعنی دقیقاً مقداری را که به آنها نسبت می دهیم ذخیره می کنند. در واقع برخلاف نوع داده real و یا float که داده ها را بصورت نماد ریاضی نمایش می دهند، نوع داده Decimal و Numeric اعداد را به همان صورتی که هستند ذخیره می کنند. (برای کسب اطلاعات بیشتر در مورد DataType های مختلف به مطلب آموزش SQL-انواع داده مراجعه فرمایید)
عملکرد هر دو نوع داده Decimal و Numeric شبیه به هم است. اما نوع داده Decimal یک تفاوت کوچک از لحاظ Performance دارد که در ادامه خواهید دید.
بسته به مقدار پارامترهای Precision و Scale از 5 الی 17 بایت اشغال می کنند.
- Precision بین 1 تا 9 : 5 بایت
- Precision بین 10 تا 19 : 9 بایت
- Precision بین 20 تا 28 : 13 بایت
- Precision بین 29 تا 38 : 17 بایت
نحوه ی تعریف:
نوع داده Decimal
Decimal (P,S)
Numeric (P,S)
پارامترها:
پارامتر | توضیح |
---|---|
p |
ماکزیمم تعداد ارقام (Precision) |
s |
ماکزیمم تعداد اعشار (Scale) |
نکته: برای پایگاه داده های حجیم که قصد ذخیره مثلاً پول را داریم بهتر است از نوع داده 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 از بسته آموزشی "افزایش کارایی پایگاه داده" موارد زیر را خواهید دید:
- قابلیت Variable Decimal Storage چیست؟ و چگونه می تواند در مورد نوع داده Decimal کارآیی یا Performance را افزایش دهد.
- چگونه قابلیت Variable Decimal Storage را روی یک پایگاه داده فعال کنم؟
- چرا در سیستم های بانکی بهتر است برای ذخیره پول از نوع داده Decimal اسفاده گردد؟
دسترسی به موارد آموزشی بالا در بسته خریداری شده
- شماره جلسه: 6
- نام فایل ویدئو: 01
- فرمت فایل: mp4.
نقطه شروع بحث بالا (Decimal و Numeric) در ویدئو: 37:20
برای خرید و دانلود کامل آموزش پیشرفته SQL Server کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 21930