SQL सर्वर में DECIMAL और NUMERIC डेटा प्रकारों के बीच कोई अंतर है?क्या SQL सर्वर में DECIMAL और NUMERIC के बीच कोई अंतर है?
मुझे डेसिमल का उपयोग कब करना चाहिए और जब NUMERIC?
SQL सर्वर में DECIMAL और NUMERIC डेटा प्रकारों के बीच कोई अंतर है?क्या SQL सर्वर में DECIMAL और NUMERIC के बीच कोई अंतर है?
मुझे डेसिमल का उपयोग कब करना चाहिए और जब NUMERIC?
वे वही हैं। संख्यात्मक रूप से दशमलव के बराबर है।
MSDN: decimal and numeric
मेरी जानकारी के लिए वहाँ NUMERIC और दशमलव डेटा प्रकार के बीच कोई अंतर नहीं है। वे एक-दूसरे के समानार्थी हैं और किसी का भी इस्तेमाल किया जा सकता है। डेसिमल और NUMERIC डेटा प्रकार निश्चित सटीक और स्केल के साथ संख्यात्मक डेटा प्रकार हैं।
संपादित करें:
कुछ सहकर्मियों से बात करते हुए शायद इसका दशमलव ANSI SQL मानक किया जा रहा है और संख्यात्मक एक माइक्रोसॉफ्ट जा रहा है के साथ कुछ के रूप में अपनी और अधिक सामान्यतः प्रोग्रामिंग भाषाओं में पाया पसंद है। ... हो सकता है कि;)
संपादन दोबारा करें: नहीं - ऊपर @ JoakimBackman का उत्तर देखें - वह NUMERIC और DECIMAL दोनों के साथ SQL मानक उद्धृत करता है। – DaveBoltman
यह वही है तो 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>.
क्या आपके पास इसके लिए लिंक है? – gbn
विस्कॉर्प में डाउनलोड के लिए मानक का एक मसौदा संस्करण है (http://www.wiscorp.com/sql_2003_standard.zip), यदि आप चाहते हैं कि अंतिम संस्करण आपको इसे खरीदना है (http://en.wikipedia.org/wiki/SQL2003 # Documentation_availability)। –
ध्यान दें कि यह SQL मानक है, यह नहीं कि SQL सर्वर इसे कैसे लागू करता है इसका विवरण नहीं है। – Guffa
वे अर्थ समान है, all.Decimal और संख्यात्मक डेटा प्रकार में कोई अंतर सांख्यिक हैं निश्चित परिशुद्धता और पैमाने के साथ डेटा प्रकार।
-- 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
जोकिम बैकमैन का जवाब विशिष्ट है, लेकिन इससे अतिरिक्त स्पष्टता आ सकती है।
मामूली अंतर है। एसक्यूएल फॉर डमीज के अनुसार, 8 वां संस्करण (2013):
DECIMAL डेटा प्रकार NUMERIC के समान है। ... अंतर है कि आपका कार्यान्वयन आपके द्वारा निर्दिष्ट से अधिक सटीकता निर्दिष्ट कर सकता है - यदि ऐसा है, तो कार्यान्वयन अधिक सटीकता का उपयोग करता है। यदि आप सटीक या स्केल निर्दिष्ट नहीं करते हैं, तो कार्यान्वयन डिफ़ॉल्ट मानों का उपयोग करता है, क्योंकि यह NUMERIC प्रकार के साथ करता है।
ऐसा लगता है कि एसक्यूएल के कुछ कार्यान्वयन पर अंतर डेटा अखंडता में है। DECIMAL कुछ सिस्टम डिफ़ॉल्ट पर आधारित परिभाषा से अतिप्रवाह की अनुमति देता है, जहां NUMERIC नहीं है।
कार्यात्मक समकक्ष समानता के समान नहीं है। असल में, एमएस 6232 ए कोर्स के प्रशिक्षक की स्लाइड में एक टिप्पणी है कि वे एक ही हैं। साथ ही, माइक्रोसॉफ्ट द्वारा एक या दूसरे के बारे में कोई सिफारिश नहीं की जाती है (हालांकि डेसिमल अधिक समझ में आता है, क्योंकि यह सिबबेस से विरासत डेटाटाइप की बजाय एक मानक डेटाटाइप है)। अभी भी सोच रहा है कि वास्तविक अंतर (स्क्रीन के पीछे) क्या है :-)। – vstrien
@vstrien: केवल एक ही अंतर जो मुझे मिल सकता है वह है कि SQL-92 मानक 'दशमलव' में * बिल्कुल * घोषित सटीक के रूप में सटीक है, जबकि 'संख्यात्मक' कम से कम * घोषित के रूप में सटीक है। SQL सर्वर में दोनों घोषित के रूप में सटीक सटीक हैं, यानी यह 'संख्यात्मक' के लिए लचीलापन का उपयोग नहीं करता है जो मानक अनुमति देता है। – Guffa
नोट, हालांकि, SQL सर्वर उन्हें अदला-बदली के रूप में नहीं मानता है: यदि, उदाहरण के लिए, आपके पास "DECIMAL (18,0)" प्रारूप में "पैरेंट" कॉलम है, और आप ** विदेशी कुंजी ** जोड़ने का प्रयास करते हैं इसके लिए "NUMERIC (18,0)" प्रारूप में एक कॉलम का संदर्भ देता है, आपको 'कॉलम' <संदर्भित कॉलम> त्रुटि ''' के संदर्भ में एक ही डेटा प्रकार नहीं है। 'विदेशी कुंजी में' '' उन्हें दोनों NUMERIC (x, y) होना चाहिए, या दोनों DECIMAL (x, y) होना चाहिए। –