Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में पैसे/राशि कैसे स्टोर करें?


DECIMAL या NUMERIC डेटा प्रकार का उपयोग करें, FLOAT/DOUBLE नहीं

मौद्रिक मूल्यों के लिए, सटीक संख्यात्मक प्रकार (DECIMAL या NUMERIC) का उपयोग करें। FLOAT/DOUBLE बाइनरी फ्लोटिंग-पॉइंट हैं और गोलाई त्रुटियां पैदा करते हैं।

क्यों नहीं FLOAT/DOUBLE?

mysql> SELECT 0.1 + 0.2;  -- 0.30000000000000004 (गलत!)
mysql> SELECT CAST(0.1 AS DECIMAL(10,2)) + CAST(0.2 AS DECIMAL(10,2));  -- 0.30 (सही)

DECIMAL सिंटैक्स

DECIMAL(कुल_अंक, दशमलव_अंक)
-- या
NUMERIC(कुल_अंक, दशमलव_अंक)  -- समान
  • कुल_अंक (precision): अधिकतम अंक संख्या (1-65)
  • दशमलव_अंक (scale): दशमलव बिंदु के दाईं ओर अंक (0-30, ≤ precision)

उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE MoneyStorageDemo (
    -> Amount DECIMAL(10, 2)  -- 8 अंक पूर्णांक, 2 दशमलव (99,999,999.99 तक)
    -> );

2. मान डालें

mysql> INSERT INTO MoneyStorageDemo VALUES(50.2), (5.50), (10.4);

3. परिणाम देखें

mysql> SELECT * FROM MoneyStorageDemo;
+--------+
| Amount |
+--------+
| 50.20  |
| 5.50   |
| 10.40  |
+--------+

सामान्य पैटर्न

उपयोगसुझाया गया प्रकारउदाहरण रेंज
मुद्रा (USD, EUR, INR)DECIMAL(10,2) या DECIMAL(12,2)99,999,999.99 / 999,999,999.99
क्रिप्टो/उच्च परिशुद्धताDECIMAL(20,8) या अधिक0.00000001 सटीकता
पूर्णांक सेंट/पैसाBIGINT (सेंट में संग्रहीत)922 खरब सेंट = 9.22 ट्रिलियन डॉलर

पूर्णांक-आधारित विकल्प (कुछ मामलों में तेज़)

सभी राशियों को सबसे छोटी इकाई में पूर्णांक के रूप में संग्रहीत करें (उदाहरण: सेंट, पैसा):

-- ₹50.25 → 5025 (पैसे में)
CREATE TABLE payments (amount_paise BIGINT NOT NULL);
INSERT INTO payments VALUES (5025);
-- प्रदर्शन: amount_paise / 100.0

नोट्स

  • DECIMAL स्टोरेज: लगभग (precision/2) बाइट्स
  • गणना में सटीकता बनी रहती है
  • प्रदर्शन के लिए FORMAT(amount, 2) या एप्लिकेशन लेयर फॉर्मेटिंग उपयोग करें
  1. - MySQL में SOUNDEX() फ़ंक्शन का उपयोग कैसे करें?

    MySQL में SOUNDEX() फ़ंक्शन समान उच्चारण वाले शब्दों को खोजने के लिए साउंडेक्स कोड लौटाता है। सिंटैक्स SELECT * FROM yourTableName WHERE SOUNDEX(yourValue) = SOUNDEX(yourColumnName); टेबल निर्माण mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARC

  1. - MySQL में पंक्ति कैसे हटाएं? DELETE स्टेटमेंट

    MySQL में पंक्ति हटाने के लिए DELETE का उपयोग करें। टेबल बनाएं mysql> create table DemoTable ( -> CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName VARCHAR(100), -> CustomerAge INT -> ); Query OK, 0 rows affected (1.30 sec) रिकॉर्ड्स डालें mysql>

  1. - MySQL क्वेरी दर्ज करना

    कंसोल पर क्वेरी दर्ज करने से पहले, यह सुनिश्चित करना महत्वपूर्ण है कि उपयोगकर्ता सर्वर से जुड़ा हुआ है। नीचे दी गई क्वेरी सर्वर के संस्करण संख्या और वर्तमान तारीख देगी। mysql> SELECT VERSION(), CURRENT_DATE; नोट: फंक्शन VERSION() और CURRENT_DATE केस-इनसेंसिटिव हैं। इसका मतलब version(), Version(