为何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
后记:很久之前写的一篇文章,忘记了有没有发表,今天整理网盘恰好看到,就发上来了。