为什么mysql字段要设置为not null
?
现在 大师来跟大家解释解释
首先 我们创建一个表 asd
字段为null
,qwe
字段为not null
,都无默认值
CREATE TABLE `tb` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`asd` VARCHAR(45) NULL,
`qwe` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idtb`)
)
然后
insert tb(asd) values('123123123');
insert tb(qwe) values('123123123');
现在 我们来查看这个表
可以看出not null
的qwe
字段 未设置的时候是个空字符串null
的asd
字段 未设置的时候是个NULL
以上结果 大家应该都可以想像到的。
那么为什么要设置NOT NULL
呢
因为 MYSQL不是PHP,NULL不等于空字符串
比如我们查询qwe
为空的
select * from tb where qwe=''
可以找到
但是
select * from tb where asd=''
则什么都找不到
而我们WEB开发的时候,果然有的地方插入记录 是指定空字符串,有的地方插入记录没有指定值,如果字段没设置NOT NULL
,那就是出现:
而你查找的时候,只会出现
所以 要设置 NOT NULL
这个 就不会有NULL
出现了。
后记:好久以前写的一篇文章,忘记了有没有发表,今天整理网盘刚好看到,就发上来了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。