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

MySQL में "UNSIGNED" का क्या अर्थ है और कब उपयोग करें?


MySQL में UNSIGNED: केवल गैर-ऋणात्मक संख्याएं

UNSIGNED एक संख्यात्मक डेटा प्रकार विशेषता है जो कॉलम को केवल गैर-ऋणात्मक मान (0 और धनात्मक) संग्रहीत करने के लिए प्रतिबंधित करती है। यह प्रभावी रूप से ऊपरी रेंज को दोगुना कर देती है।

रेंज तुलना

प्रकारSIGNED (डिफ़ॉल्ट)UNSIGNED
TINYINT-128 से 1270 से 255
SMALLINT-32,768 से 32,7670 से 65,535
MEDIUMINT-8,388,608 से 8,388,6070 से 16,777,215
INT-2,147,483,648 से 2,147,483,6470 से 4,294,967,295
BIGINT-9.22e18 से 9.22e180 से 1.84e19

उदाहरण

1. UNSIGNED कॉलम के साथ टेबल बनाएं

mysql> CREATE TABLE UnsignedDemoWithPositiveValue (
    -> Distance INT UNSIGNED
    -> );

2. सीमा से बाहर मान का प्रयास

mysql> INSERT INTO UnsignedDemoWithPositiveValue VALUES(4294967296);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1

3. अधिकतम मान डालें

mysql> INSERT INTO UnsignedDemoWithPositiveValue VALUES(4294967295);
Query OK, 1 row affected

4. ऋणात्मक मान का प्रयास

mysql> INSERT INTO UnsignedDemoWithPositiveValue VALUES(-124);
ERROR 1264 (22003): Out of range value for column 'Distance' at row 1

5. वैध धनात्मक मान डालें

mysql> INSERT INTO UnsignedDemoWithPositiveValue VALUES(124);
Query OK, 1 row affected

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

mysql> SELECT * FROM UnsignedDemoWithPositiveValue;
+------------+
| Distance   |
+------------+
| 4294967295 |
| 124        |
+------------+

कब उपयोग करें

  • आईडी/ऑटो-इन्क्रीमेंट: प्राइमरी की के लिए मानक (ऋणात्मक कभी नहीं)
  • काउंटर/मात्रा: इन्वेंट्री, लाइक काउंट, व्यू काउंट
  • बड़ी धनात्मक संख्याएं: जब SIGNED रेंज अपर्याप्त हो लेकिन BIGINT ओवरकिल हो
  • बिटमास्क/फ्लैग: बिटवाइज़ ऑपरेशन के लिए

कब बचें

  • ऋणात्मक मान संभव हों (तापमान, वित्तीय शेष, निर्देशांक)
  • पोर्टेबिलिटी आवश्यक हो (कुछ DBMS UNSIGNED का समर्थन नहीं करते)
  • एप्लिकेशन लेयर ऋणात्मक मान पास कर सकती हो

नोट

MySQL 8.0.17+ में, ZEROFILL निहित रूप से UNSIGNED जोड़ता है। भविष्य के संस्करणों में ZEROFILL अप्रचलित हो सकता है।

  1. - MySQL में UPDATE WHERE से विशिष्ट पंक्ति और कॉलम मान अपडेट करें

    MySQL में UPDATE स्टेटमेंट और WHERE क्लॉज का उपयोग करके विशिष्ट पंक्ति के विशिष्ट कॉलम का मान बदल सकते हैं। सिंटैक्स UPDATE टेबल_नाम SET कॉलम_नाम = नया_मान WHERE शर्त; उदाहरण: StudentId अपडेट करें जहां StudentName = Carol Taylor 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable1569 VALUES(D

  1. XInput और DirectInput का क्या मतलब है? XInput और DirectInput का क्या मतलब है?

    शायद आपने XInput और DirectInput शब्द यहां-वहां सुने होंगे, लगभग हमेशा उन कंट्रोलर के संदर्भ में जिनका उपयोग आप विंडोज के लिए कर सकते हैं। लेकिन उनका वास्तव में क्या मतलब है? क्या इससे फर्क पड़ता कि आपके पास कौन सा है, और यदि हां, तो आप कैसे बता सकते हैं कि आपके पास क्या है? आइए दोनों शर्तों का पता ल

  1. HDR क्या है और एंड्रॉइड पर इसका उपयोग कैसे करें HDR क्या है और एंड्रॉइड पर इसका उपयोग कैसे करें

    स्मार्टफोन फोटोग्राफी हाल के वर्षों में छलांग और सीमा से आगे बढ़ी है। हम में से अधिकांश ने पारंपरिक डिजिटल कैमरों को पूरी तरह से अपने स्मार्टफोन की सुविधा के पक्ष में छोड़ दिया है। यह परिवर्तन हमारे फोन में बेहतर हार्डवेयर और सॉफ्टवेयर लागू होने के साथ संभव हुआ है। जैसे-जैसे आपके फोन पर कैमरा फ़ंक्श