每當我們在mysql數據庫中創建我們的表時,那麼在那裏會出現一個null複選框選項。如果點擊它,那麼它也會使用空值,如果它保持未選中狀態,那麼它也會使用空值。那是什麼意思?MySQL數據庫中的NULL和NOT NULL的含義
回答
該複選框可能會將默認值設置爲null。可能還有一個框指定該字段是否接受空值。空基本意味着空或無(在VB中)。
空基本上是「沒有價值」。如果您允許使用空值,則需要確保您的代碼能夠處理不包含值的列。另一種方法是爲每列定義「空」值(例如,整數爲0)。這有時比處理空值更省力。
正如下面的HLGEM所指出的:我不是想說0等於null。考慮: 具有「StockOnHand」列的數據庫。
0表示您知道手頭沒有庫存。 Null真的意味着未知(你的男人有股票,你可能不會)
根據應用程序,也許你決定把「未知」視爲「無股票」 - 在這種情況下,你可以使用「無空」並只有一個0值。
然而,0具有特定的數學意義,並且無法與null相比,這意味着您不知道該值。如果你不知道價值,那麼你有時可以這樣做,但這是一種危險的做法。 – HLGEM
NULL
用於表示「無值」,並允許區分1和0之間,真或假,或空字符串與含內容的字符串。它類似於Ruby中的nil
,JavaScript中的null
或PHP中的NULL
。
如果您將一列定義爲NOT NULL
,那麼它將不允許INSERT
沒有指定該列的值。如果你有一個DEFAULT
那麼這將自動應用。如果您使用ORM,則可以使用安全的最小默認值爲您填充。
可以是NULL
的列需要每行額外存儲幾乎不需要額外的一個位來保存NULL
或NOT NULL
標誌。
請記住,MySQL中的NULL
是不尋常的,因爲它不大於,小於或等於任何其他值。這就是邏輯比較需要IS NULL
和IS NOT NULL
的原因。
按照manual:
的
NULL
值意味着 「無數據」NULL
可以寫在任何信箱中。同義詞是\N
(區分大小寫)。
NOT NULL
意味着與NULL
相反,或不是沒有數據。由於某些列可能爲NULL
,因此可以使用WHERE col IS NOT NULL
來查找非「空」的值。
- 1. MYSQL中的NULL和NOT NULL
- 2. MYSQL - NULL和(null)
- 3. 獲取包含null和非null的數據庫字段非空值
- 4. 在這種情況下,(model!= null)和(db!= null)的含義
- 5. mysql數據庫一直返回null
- 6. MySQL中'默認數據庫'的含義
- 7. DDL(數據定義語言)中的SQL NULL NULL
- 8. 在soap xml中返回字符串null的數據庫null
- 9. DateTime Null和mySql
- 10. 避免MySQL存儲null和whitspace數據
- 11. C++中NULL!= value的含義是什麼?
- 12. null and not null mysql
- 13. 傳遞null數據庫
- 14. 數據庫值顯示NULL
- 15. MySQL的CONCAT返回NULL,如果任何字段包含NULL
- 16. 外鍵和NULL在MySQL的
- 17. MySQL的基數的NULL值
- 18. MySql,InnoDB和NULL值
- 19. mysql和not null列
- 20. mysql加入和null
- 21. Hibernate,MySQL,Enum和NULL
- 22. MYSQL其中$ var和IS NULL
- 23. NULL vs DEFAULT NULL vs NULL DEFAULT在MYSQL列創建中爲NULL?
- 24. Rails Simple_Form在數據庫中將NULL值保存爲NULL
- 25. MySQL中的「!= NULL」和「IS NOT NULL」之間是否有區別?
- 26. MYSQL IF NOT NULL包含在查詢中
- 27. 在MySQL中還包含NULL行SELECT Query
- 28. NULL中的MAX,MIN函數中的NULL
- 29. Null Php將數據插入到MySQL數據庫時變量
- 30. PHP將數據傳遞給MYSQL數據庫NOT NULL規則
聽起來像你用來創建你的表的任何東西都不能正常工作。如果您將表定義爲NOT NULL,那麼您不能在其中存儲NULL。無論是或者你存儲的字符串值'null',而不是一個實際的NULL。做SHOW CREATE TABLE表;並檢查定義。 –