爲何mysql字段要設置爲not null
?
如今 大師來跟你們解釋解釋mysql
首先 咱們建立一個表 asd
字段爲null
,qwe
字段爲not null
,都無默認值sql
CREATE TABLE `tb` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `asd` VARCHAR(45) NULL, `qwe` VARCHAR(45) NOT NULL, PRIMARY KEY (`idtb`) )
而後segmentfault
insert tb(asd) values('123123123'); insert tb(qwe) values('123123123');
如今 咱們來查看這個表
能夠看出not null
的qwe
字段 未設置的時候是個空字符串null
的asd
字段 未設置的時候是個NULL
spa
以上結果 你們應該均可以想像到的。
那麼爲何要設置NOT NULL
呢
由於 MYSQL不是PHP,NULL不等於空字符串
好比咱們查詢qwe
爲空的code
select * from tb where qwe=''
能夠找到
可是圖片
select * from tb where asd=''
則什麼都找不到開發
而咱們WEB開發的時候,果真有的地方插入記錄 是指定空字符串,有的地方插入記錄沒有指定值,若是字段沒設置NOT NULL
,那就是出現:
字符串
而你查找的時候,只會出現
class
因此 要設置 NOT NULL
這個 就不會有NULL
出現了。select
後記:很久之前寫的一篇文章,忘記了有沒有發表,今天整理網盤恰好看到,就發上來了。