开发者社区> 问答> 正文

为什么在MySQL中有些字段为什么要设置成not null?

字段为什么要设置成not null?

展开
收起
1780169608831412 2021-10-01 14:54:08 712 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好, 首先,NULL和空值是不一样的,空值是不占用空间的,而NULL是占用空间的,所以字段设为NOT NULL后仍然可以插入空值。

    字段设置成not null主要有以下几点原因:

    NULL值会影响一些函数的统计,如count,遇到NULL值,这条记录不会统计在内。
    B树不存储NULL,所以索引用不到NULL,会造成第一点中说的统计不到的问题。
    NOT IN子查询在有NULL值的情况下返回的结果都是空值。
    MySQL在进行比较的时候,NULL会参与字段的比较,因为NULL是一种比较特殊的数据类型,数据库在处理时需要进行特数处理,增加了数据库处理记录的复杂性。
    
    
    2021-10-01 15:32:20
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像