Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

NOT NULL DEFAULT '' का क्या मतलब है?

NULLs का विशेष व्यवहार होता है:किसी भी चीज़ की NULL से तुलना करने से आपको एक NULL वापस मिलता है , जो false . के अलावा कुछ और है या 0 . इसका अर्थ है "अज्ञात"।

उदाहरण के लिए, यह तालिका लें:

 user_id | gender
------------------
 1       | NULL
 2       | 'M'
 3       | 'F'
 4       | 'F'

SELECT * FROM mytable WHERE gender = 'M' अपेक्षित के रूप में 1 पंक्ति लौटाएगा

SELECT * FROM mytable WHERE gender != 'M' 2 पंक्तियाँ लौटाएगा, 3 पंक्तियाँ नहीं।

SELECT * FROM mytable WHERE gender != 'M' OR gender IS NULL अपेक्षित 3 पंक्तियाँ लौटाएगा।

संपादित करें:कुछ अनुप्रयोगों के लिए, 0 . का उपयोग करके (या, भगवान न करे, एक और "मैजिक नंबर") NULL . के बजाय उचित भी नहीं है (इकाइयाँ या सटीक मान इस उदाहरण में प्रासंगिक नहीं हैं):

 Date       | Temperature 
--------------------------
 2010-01-01 | 10          
 2010-01-02 | 4
 2010-01-03 | 0
 2010-01-04 | -22
 2010-01-05 | -45
 2010-01-06 | NULL
 2010-01-07 | -34

यहां, NULL 6 जनवरी का अर्थ है "मान अज्ञात" - शायद इसलिए कि तापमान इतना कम था कि थर्मामीटर जांच ने प्रतिक्रिया देना बंद कर दिया। हालांकि, यह 3 जनवरी से बिल्कुल अलग अर्थ है, जब तापमान 0 . था , यानी 0 डिग्री।

साथ ही, जैसा कि @ बिल करविन ने उल्लेख किया है, एनयूएलएल विशेष रूप से समग्र कार्यों में व्यवहार करते हैं (COUNT ,SUM ,AVG आदि):AVG(Temperature) की गणना उपरोक्त डेटा पर आपको -14.5 मिलेगा , क्योंकि NULL पंक्ति को अनदेखा कर दिया जाता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप MySQL में संग्रहीत कार्यविधि को कैसे संपादित करते हैं?

  2. मैसकल क्वेरी त्रुटि - ऑटो सिक्के जोड़ें

  3. Node.js MySQL मॉड्यूल में mysql.createConnection और mysql.createPool में क्या अंतर है?

  4. MySQL डेटाबेस से Google मानचित्र API v3 पर एकाधिक बहुभुज आरेखित करना

  5. pip3 स्थापित mysql-अजगर त्रुटि कोड 1 के साथ /tmp/pip-install-4nev4id4/mysql-python/ में विफल रहा