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

क्या MySQL INT टाइप NULL हो सकता है? (नॉन-जीरो NULL)

हाँ, MySQL में INT (और अन्य संख्यात्मक टाइप) **NULL हो सकते हैं** जब तक कॉलम को NOT NULL घोषित न किया गया हो। डिफॉल्ट रूप से संख्यात्मक कॉलम NULLable होते हैं।

सिंटैक्स

CREATE TABLE tableName (
    intColumn INT  -- NOT NULL नहीं लिखा, इसलिए NULL अनुमत
);

INSERT INTO tableName(intColumn) VALUES(NULL);

उदाहरण के साथ समझें

टेबल बनाएं (Price INT, NOT NULL नहीं):

CREATE TABLE nullableIntDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Price INT,  -- NULL अनुमत
    PRIMARY KEY(Id)
);

NULL और मान दोनों डालें:

INSERT INTO nullableIntDemo(Price) VALUES(NULL);
INSERT INTO nullableIntDemo(Price) VALUES(100);
INSERT INTO nullableIntDemo(Price) VALUES(200);
INSERT INTO nullableIntDemo(Price) VALUES(NULL);
INSERT INTO nullableIntDemo(Price) VALUES(NULL);

सभी रिकॉर्ड देखें:

SELECT * FROM nullableIntDemo;

आउटपुट:

+----+-------+
| Id | Price |
+----+-------+
| 1  | NULL  |
| 2  | 100   |
| 3  | 200   |
| 4  | NULL  |
| 5  | NULL  |
+----+-------+

महत्वपूर्ण अंतर

परिभाषाNULL अनुमत?डिफॉल्ट
Price INTहाँNULL
Price INT NOT NULLनहींकोई नहीं (मान आवश्यक)
Price INT DEFAULT 0हाँ0
Price INT NOT NULL DEFAULT 0नहीं0

NULL बनाम 0

  • NULL = मान अज्ञात/अनुपस्थित (कोई मान नहीं)
  • 0 = मान शून्य है (ज्ञात मान)
  • Price = 0 और Price IS NULL अलग हैं
  • SUM(Price) NULL को अनदेखा करता है, 0 को जोड़ता है
  • AVG(Price) NULL को गिनती में नहीं लेता

NULL को 0 मानकर गणना करें

SELECT SUM(COALESCE(Price, 0)) FROM nullableIntDemo;

NOT NULL कंस्ट्रेंट जोड़ें (यदि आवश्यक)

-- मौजूदा NULL को पहले 0 में बदलें
UPDATE nullableIntDemo SET Price = 0 WHERE Price IS NULL;

-- फिर NOT NULL जोड़ें
ALTER TABLE nullableIntDemo MODIFY COLUMN Price INT NOT NULL;

नोट

  • "नॉन-जीरो NULL" शब्द भ्रामक है - NULL का कोई संख्यात्मक मान नहीं होता
  • सभी संख्यात्मक टाइप (TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL) NULLable हो सकते हैं
  • प्राइमरी की कॉलम स्वचालित रूप से NOT NULL होते हैं
  1. - MySQL में INT प्रकार के yyyymmdd को तिथि में बदलना

    MySQL में DATE() फ़ंक्शन के साथ INTEGER yyyymmdd को DATE में परिवर्तित करना जब तिथि INTEGER फॉर्मेट में संग्रहीत होती है (जैसे 20190108 = 2019-01-08), तो MySQL का DATE() फ़ंक्शन इसे स्वचालित रूप से तिथि में परिवर्तित कर सकता है। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( Number I

  1. - MySQL में INSERT करते समय कॉलम को कैसे छोड़ें (skip करें)?

    MySQL INSERT में ऑटो-इन्क्रीमेंट कॉलम को छोड़ना जब किसी टेबल का पहला कॉलम AUTO_INCREMENT होता है, तो आप INSERT स्टेटमेंट में उस कॉलम को छोड़ सकते हैं या NULL मान दे सकते हैं — MySQL स्वचालित रूप से अगला क्रमिक मान जनरेट करेगा। उदाहरण: StudentId ऑटो-इन्क्रीमेंट है टेबल बनाएं: CREATE TABLE DemoTable

  1. - MySQL में TINYINT कॉलम पर <> 1 या IS NULL शर्त से रिकॉर्ड चुनें

    MySQL में TINYINT कॉलम (आमतौर पर बूलियन के लिए उपयोग) पर <> 1 या IS NULL शर्त से रिकॉर्ड फ़िल्टर कर सकते हैं। उदाहरण: अविवाहित (isMarried ≠ 1) या अज्ञात (NULL) कर्मचारी 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable(EmployeeName, isMarried) VALUES(Bob, 0); 3. सभी रिकॉर्ड SELECT *