PSQL

2015-11-16 9 views
8

में DECIMAL और NUMERIC डेटाटाइप के बीच अंतर decimal और numeric postgreSQL में डेटाटाइप का उपयोग क्या है। संदर्भ के अनुसार निम्नलिखित डेटाटाइप को दी गई स्पष्टीकरण निम्नलिखित है।PSQL

Decimal,numeric --> It is a user specified precision, exact and range up to 131072 digits before the decimal point and up to 16383 digits after the decimal point. 

ऊपर बयान decimal और numeric डेटाप्रकार का विवरण पता चलता है। लेकिन, अभी भी मुझे समझ में नहीं आया कि इन डेटा प्रकार का सटीक उपयोग और अन्य डेटाटाइप के बजाय इसका उपयोग कहां किया जाता है। उदाहरण के साथ

उत्तर बहुत सराहना कर रहा है ...

+0

क्रॉस पोस्ट: http://dba.stackexchange.com/q/121196/1822 –

उत्तर

13

Right from the manual:

प्रकार decimal और numeric बराबर हैं। दोनों प्रकार एसक्यूएल मानक का हिस्सा हैं।

का सवाल है, यह भी मैनुअल में समझाया गया है "मुझे इसका उपयोग क्यों की जरूरत है":

प्रकार संख्यात्मक अंकों की एक बहुत बड़ी संख्या के साथ नंबर स्टोर कर सकते हैं और प्रदर्शन गणना बिल्कुल

(जोर मेरा)।

आप दशमलव के साथ संख्या की जरूरत है, decimal (या numeric) का उपयोग करता है, तो आप संख्या की जरूरत दशमलव के बिना, integer या bigint का उपयोग करें। कॉलम प्रकार के रूप में decimal का एक सामान्य उपयोग "उत्पाद मूल्य" कॉलम या "ब्याज दर" होगा। एक पूर्णांक प्रकार का एक सामान्य उपयोग उदा। एक कॉलम जो स्टोर करता है कितने उत्पादों का आदेश दिया गया था (मान लीजिए कि आप "आधा" उत्पाद ऑर्डर नहीं कर सकते हैं)।

double और real भी प्रकार है कि दशमलव मान संग्रहीत कर सकते हैं, लेकिन वे अनुमानित प्रकार हैं। इसका मतलब है कि आप जरूरी मूल्य को पुनर्प्राप्त नहीं करते हैं। विवरण के लिए कृपया देखें: http://floating-point-gui.de/

1

वे एक दूसरे के समानार्थी हैं और कार्यात्मक रूप से समान हैं। SQL:2003 मानक का कहना है:

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

से https://www.postgresql.org/message-id/[email protected]

सीधे उद्धरित वहाँ कोई अंतर, Postgres में नहीं है। दो प्रकार के नाम हैं क्योंकि SQL मानक के लिए हमें दोनों नामों को स्वीकार करने की आवश्यकता है। मानक में एक त्वरित नज़र में ऐसा लगता है कि फर्क सिर्फ इतना है यह है:

 17)NUMERIC specifies the data type exact numeric, with the decimal 
     precision and scale specified by the <precision> and <scale>. 

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

यानी, दशमलव के लिए कार्यान्वयन अधिक अंक से दशमलव बिंदु के बाईं ओर का अनुरोध अनुमति देने के लिए अनुमति दी है। पोस्टग्रेज़ स्वतंत्रता का अभ्यास नहीं करते हैं इसलिए हमें इन प्रकारों के बीच कोई अंतर नहीं है।

 regards, tom lane 
संबंधित मुद्दे