当前位置:Gxlcms > mysql > 为什么mysql字段要设置为notnull?

为什么mysql字段要设置为notnull?

时间:2021-07-01 10:21:17 帮助过:39人阅读

为什么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) NO

为什么mysql字段要设置为not null?
现在 大师来跟大家解释解释

首先 我们创建一个表 asd字段为nullqwe字段为not null,都无默认值

  1. CREATE TABLE `tb` (
  2. `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `asd` VARCHAR(45) NULL,
  4. `qwe` VARCHAR(45) NOT NULL,
  5. PRIMARY KEY (`idtb`)
  6. )
然后

  1. insert tb(asd) values('123123123');
  2. insert tb(qwe) values('123123123');


  1. 现在 我们来查看这个表
  2. 请输入图片描述
  3. 可以看出
  4. not null 的qwe字段 未设置的时候是个空字符串
  5. null 的asd字段 未设置的时候是个NULL
  6. 以上结果 大家应该都可以想像到的。
  7. 那么为什么要设置NOT NULL呢
  8. 因为 MYSQL不是PHP,NULL不等于空字符串
  9. 比如我们查询qwe为空的
  10. select * from tb where qwe=''
  11. 可以找到
  12. 请输入图片描述
  13. 但是
  14. select * from tb where asd=''
  15. 则什么都找不到
  16. 而我们WEB开发的时候,果然有的地方插入记录 是指定空字符串,有的地方插入记录没有指定值,如果字段没设置NOT NULL,那就是出现:
  17. 请输入图片描述
  18. 而你查找的时候,只会出现
  19. 请输入图片描述
  20. 所以 要设置 NOT NULL
  21. 这个 就不会有NULL出现了。

人气教程排行