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

MySQL में NOT NULL कॉलम में खाली स्ट्रिंग


मुख्य अंतर: PHP बनाम MySQL

PHP में खाली स्ट्रिंग ('') अक्सर NULL के बराबर व्यवहार करती है, लेकिन MySQL में खाली स्ट्रिंग NULL के बराबर नहीं है। एक NOT NULL कॉलम खाली स्ट्रिंग स्वीकार कर सकता है।

प्रदर्शन

NOT NULL कॉलम के साथ टेबल बनाना

mysql> CREATE TABLE EmptyStringNotNullDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(10) NOT NULL,
    PRIMARY KEY(Id)
);

खाली स्ट्रिंग डालना (सफल)

mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('John');
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('');   -- खाली स्ट्रिंग
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('Carol');
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('');   -- खाली स्ट्रिंग
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('');   -- खाली स्ट्रिंग
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('Larry');

डेटा

+----+-------+
| Id | Name  |
+----+-------+
|  1 | John  |
|  2 |       |
|  3 | Carol |
|  4 |       |
|  5 |       |
|  6 | Larry |
+----+-------+

जांच: क्या खाली स्ट्रिंग NULL है?

mysql> SELECT Name, Name IS NULL AS EmptyValueIsNotNULL FROM EmptyStringNotNullDemo;
+-------+---------------------+
| Name  | EmptyValueIsNotNULL |
+-------+---------------------+
| John  |                   0 |
|       |                   0 |
| Carol |                   0 |
|       |                   0 |
|       |                   0 |
| Larry |                   0 |
+-------+---------------------+

सभी पंक्तियों के लिए 0 (गलत) — खाली स्ट्रिंग NULL नहीं है।

यूजर-डिफाइंड वेरिएबल के साथ खाली स्ट्रिंग अपडेट करना

mysql> SET @emptyStringValue = '';
mysql> UPDATE EmptyStringNotNullDemo SET Name = @emptyStringValue;

अपडेट के बाद

+----+------+
| Id | Name |
+----+------+
|  1 |      |
|  2 |      |
|  3 |      |
|  4 |      |
|  5 |      |
|  6 |      |
+----+------+

महत्वपूर्ण निहितार्थ

परिदृश्यपरिणाम
INSERT INTO t (col) VALUES ('') जहां col NOT NULLसफल — खाली स्ट्रिंग डाली जाती है
INSERT INTO t (col) VALUES (NULL) जहां col NOT NULLत्रुटि — NULL अस्वीकार
WHERE col = ''केवल खाली स्ट्रिंग मिलती है, NULL नहीं
WHERE col IS NULLकेवल NULL मिलती है, खाली स्ट्रिंग नहीं
WHERE col IS NOT NULLखाली स्ट्रिंग शामिल है

सर्वोत्तम अभ्यास

  • यदि "कोई मान नहीं" का अर्थ है, तो NULL उपयोग करें (और कॉलम को NULL अनुमति दें)।
  • यदि खाली स्ट्रिंग एक वैध मान है (जैसे वैकल्पिक मध्य नाम), तो NOT NULL के साथ खाली स्ट्रिंग अनुमति दें।
  • सुसंगत रहें: एप्लिकेशन कोड में खाली स्ट्रिंग को NULL में सामान्य करें या इसके विपरीत।
  1. - MySQL में किसी स्ट्रिंग वाले कॉलम नामों का चयन कैसे करें?

    इसके लिए, आप SHOW COLUMNS कमांड का उपयोग कर सकते हैं। सिंटैक्स निम्नलिखित है। यहाँ, हमने LIKE का उपयोग करके स्ट्रिंग सेट की है: SHOW COLUMNS FROM yourTableName LIKE yourStringValue; आइए पहले एक टेबल बनाते हैं: CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VA

  1. - MySQL में COALESCE() से NULL कॉलम के लिए डिफ़ॉल्ट स्ट्रिंग लौटाना

    MySQL में NULL मानों के स्थान पर एक विशिष्ट डिफ़ॉल्ट स्ट्रिंग लौटाने के लिए COALESCE() फ़ंक्शन का उपयोग किया जाता है। यह IFNULL() से अधिक शक्तिशाली है क्योंकि यह एकाधिक तर्क स्वीकार करता है। उदाहरण के लिए टेबल बनाना mysql> CREATE TABLE DemoTable ( Name VARCHAR(100) ); डेटा डालना (NULL मानों

  1. - MySQL में UPDATE का उपयोग करके कॉलम मान रिप्लेस करना

    WHERE क्लॉज के साथ विशिष्ट पंक्ति का कॉलम मान अपडेट करना किसी विशिष्ट पंक्ति के कॉलम मान को बदलने के लिए UPDATE के साथ SET और WHERE का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Score INT ); रिकॉर्ड्स इन्सर्ट