mysql建字符串字段时空字符串("")和empty string有什么样的区别?

以前都是用phpmyadmin管理mysql的,建立字段的时候空就是""。后来这一段时间用了Navicat这个软件。发现在建立字段的时候有2个空字符串的选项,如下图
图片描述

网上我看了下,有人说这2个主要区别就是第一个("")占用空间,第二个(Empty String)不占用空间。 如此一来,那我觉得Empty String就和NULL很像了啊。
所以我想知道他们有什么本质的区别?方便我在以后建字段的时候知道什么时候选择对应的类型。谢谢了

阅读 10.5k
2 个回答

空字串顾名思义是个string嘛~
NULL哪方面都是NULL(说法比较通俗...)
从长度来看空字串的长度是0 而NULL长度为NULL
在InnoDB中 NULL比空字串占用更少的空间哦

这两种设计在数据库是否占空间的层面上考虑不会太多,更多的时候还是考虑业务需要会更好。

比如某个字段一定要显示,那如果没有只就为“”,前端显示就不要去转换了,也不会引发未考虑到的空指针异常。
而有些字段是可写或可不写,那么为null就表示从来没有填写过,做一些相应的逻辑控制,相当于多了一个状态位。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏