এসকিউএল সার্ভারে ডেসিমাল এবং NUMERIC এর মধ্যে কোনও পার্থক্য রয়েছে কি?


127

এসকিউএল সার্ভারে ডেসিমাল এবং NUMERIC ডেটা ধরণের মধ্যে কি কোনও পার্থক্য রয়েছে?

কখন আমি ডেসিমাল এবং কখন NUMERIC ব্যবহার করব?

উত্তর:


105

তারা একই. সংখ্যাটি কার্যত দশমিকের সমতুল্য।

এমএসডিএন: দশমিক এবং সংখ্যাসূচক


4
কার্যকরী সমতা সমতা হিসাবে এক নয়। প্রকৃতপক্ষে, MS6232A কোর্সের ইন্সট্রাক্টরের স্লাইডগুলিতে একটি মন্তব্য যুক্ত করা হয়েছে যে তারা প্রায় একই রকম। একই সময়ে, মাইক্রোসফ্ট দ্বারা এক বা অন্য সম্পর্কে কোনও সুপারিশ করা হয়নি (তবে ডেসিমাল আরও বেশি তাৎপর্যপূর্ণ বলে বিবেচনা করে, কারণ এটি সাইবাস থেকে উত্তরাধিকারী ডেটাটাইপের পরিবর্তে স্ট্যান্ডার্ডের ডেটাটাইপ)। এখনও ভাবছি আসল পার্থক্যটি কী (পর্দার পিছনে) :-)?
vstrien

22
@vstrien: শুধু পার্থক্য যে আমি খুঁজে পেতে পারে এসকিউএল 92 মান হয় decimalহয় ঠিক , যেমন ঘোষিত যেমন সুনির্দিষ্ট সময় numericনেই অন্তত হিসেবে ঘোষণা সুনির্দিষ্ট হিসাবে। এসকিউএল সার্ভারে উভয়ই ঘোষিত হিসাবে ঠিক যথার্থ, যেমন এটি numericস্ট্যান্ডার্ডের অনুমতি দেয় তার জন্য নমনীয়তা ব্যবহার করে না ।
গুফা

17
তবে লক্ষ করুন যে এসকিউএল সার্ভার তাদের সাথে বিনিময়যোগ্য হিসাবে বিবেচনা করে না: উদাহরণস্বরূপ, যদি আপনার "ডেসিমাল (18,0)" ফর্ম্যাটে একটি "প্যারেন্ট" কলাম থাকে এবং আপনি এটির জন্য একটি বিদেশী কী যুক্ত করার চেষ্টা করেন যা একটি উল্লেখ করে "NUMERIC (18,0)" ফর্ম্যাটে কলাম, আপনি ত্রুটিটি পেয়ে যাবেন Column '<referencedColumn>' is not the same data type as referencing column '<parentTable>.<parentColumn>' in foreign key '<yourKeyName>'They তাদের উভয়ই NUMERIC (x, y), বা উভয়ই DECIMAL (x, y) হতে হবে
Dou

7
@Guffa: আপনার উত্তর SQL2003 মান হিসেবে এ উদ্ধৃত contradicts stackoverflow.com/a/759606/14731 । বিশেষ করে, decimalহয় অন্তত যেহেতু, যেমন ঘোষিত সুনির্দিষ্ট যেমন numericহয় ঠিক হিসাবে ঘোষণা সুনির্দিষ্ট হিসাবে।
গিলি

3
@ গিলি: হ্যাঁ, মূল উপাদানটির পর্যালোচনা করে মনে হচ্ছে আপনি ঠিক বলেছেন যে আমি এগুলিকে ঘুরিয়েছি।
গুফা

41

এরপরে এসকিউএল ২০০৩ স্ট্যান্ডার্ড (§ Typ.১ ডেটা টাইপ) দুটি সম্পর্কে যা বলে:

 <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>.

আপনার জন্য এই লিঙ্ক আছে দয়া করে?
gbn

2
Wiscorp ডাউনলোড (জন্য আদর্শ একজন খসড়া সংস্করণ রয়েছে wiscorp.com/sql_2003_standard.zip ) আপনি এটা (কিনতে হবে আপনি চূড়ান্ত সংস্করণ চান, en.wikipedia.org/wiki/SQL2003#Documentation_availability )।
জোয়াকিম ব্যাকম্যান

6
দ্রষ্টব্য যে এটি এসকিউএল স্ট্যান্ডার্ড, এসকিউএল সার্ভার এটি কীভাবে প্রয়োগ করে তার বিবরণ নয়।
গুফা

2
এটি জেনে ভালো লাগার পরে মাইক্রোসফ্ট অন্য একটি নিয়ম উপেক্ষা করার সিদ্ধান্ত নিয়েছে। :)
one.beat.consumer

11

আমার জানা মতে NUMERIC এবং ডেসিমাল ডেটা ধরণের মধ্যে কোনও পার্থক্য নেই। তারা একে অপরের প্রতিশব্দ এবং উভয় একটি ব্যবহার করা যেতে পারে। ডেসিমাল এবং NUMERIC ডেটা টাইপগুলি নির্দিষ্ট নির্ভুলতা এবং স্কেল সহ সংখ্যাসূচক ডেটা টাইপ।

সম্পাদনা:

কয়েকটি কলেজের সাথে কথা বলার সাথে ডিসিমালের সাথে এএনএসআই এসকিউএল স্ট্যান্ডার্ড হওয়া এবং মেরিকোসফ্ট তার প্রোগ্রামিং ভাষাগুলিতে বেশি দেখা যায় বলে মিরকোসফ্টকে পছন্দ করার সাথে এর কিছু সম্পর্ক রয়েছে। ...হতে পারে ;)


সম্পাদনাটি পুনরায় করুন: নাহ - উপরে @ জোয়াকিমব্যাকম্যানের উত্তর দেখুন - তিনি এসআরসিএল স্ট্যান্ডার্ডকে NUMERIC এবং DECIMAL উভয়ের সাথে উদ্ধৃত করেছেন।
বিপরীত প্রকৌশলী

1

এগুলি প্রতিশব্দ, একেবারেই কোনও পার্থক্য নয় ec ডেসিমাল এবং নিউমেরিকাল ডেটা টাইপগুলি নির্দিষ্ট নির্ভুলতা এবং স্কেল সহ সংখ্যাসূচক ডেটা টাইপ।

-- 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

1

জোয়াকিম ব্যাকম্যানের উত্তর নির্দিষ্ট, তবে এটি এতে অতিরিক্ত স্বচ্ছতা আনতে পারে।

একটি সামান্য পার্থক্য আছে। ডামিগুলির জন্য এসকিউএল অনুসারে, অষ্টম সংস্করণ (2013):

ডেসিমাল ডেটা টাইপ NUMERIC এর মতো। ... পার্থক্যটি হ'ল আপনার বাস্তবায়ন আপনার নির্দিষ্টকরণের চেয়ে বৃহত্তর নির্ভুলতা নির্দিষ্ট করতে পারে - যদি তাই হয় তবে প্রয়োগটি বৃহত্তর নির্ভুলতা ব্যবহার করে। আপনি যদি নির্ভুলতা বা স্কেল নির্দিষ্ট না করেন তবে প্রয়োগটি ডিফল্ট মানগুলি ব্যবহার করে, যেমন এটি NUMERIC টাইপের সাথে হয়।

দেখে মনে হচ্ছে এসকিউএল এর কিছু বাস্তবায়নের মধ্যে পার্থক্য ডেটা অখণ্ডতায়। ডেসিমাল কিছু সিস্টেম ডিফল্টের উপর নির্ভর করে যা সংজ্ঞায়িত করা হয় সেখান থেকে ওভারফ্লো করতে দেয়, যেখানে NUMERIC হিসাবে হয় না।


-2

তারা ঠিক একই আছে। আপনি যখন এটি ব্যবহার করুন সামঞ্জস্যপূর্ণ। আপনার ডাটাবেসে এর মধ্যে একটি ব্যবহার করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.