以前都是用phpmyadmin管理mysql的,建立字段的时候空就是""。后来这一段时间用了Navicat这个软件。发现在建立字段的时候有2个空字符串的选项,如下图
网上我看了下,有人说这2个主要区别就是第一个("")占用空间,第二个(Empty String)不占用空间。 如此一来,那我觉得Empty String就和NULL很像了啊。
所以我想知道他们有什么本质的区别?方便我在以后建字段的时候知道什么时候选择对应的类型。谢谢了
以前都是用phpmyadmin管理mysql的,建立字段的时候空就是""。后来这一段时间用了Navicat这个软件。发现在建立字段的时候有2个空字符串的选项,如下图
网上我看了下,有人说这2个主要区别就是第一个("")占用空间,第二个(Empty String)不占用空间。 如此一来,那我觉得Empty String就和NULL很像了啊。
所以我想知道他们有什么本质的区别?方便我在以后建字段的时候知道什么时候选择对应的类型。谢谢了
这两种设计在数据库是否占空间的层面上考虑不会太多,更多的时候还是考虑业务需要会更好。
比如某个字段一定要显示,那如果没有只就为“”,前端显示就不要去转换了,也不会引发未考虑到的空指针异常。
而有些字段是可写或可不写,那么为null就表示从来没有填写过,做一些相应的逻辑控制,相当于多了一个状态位。
空字串顾名思义是个string嘛~
NULL哪方面都是NULL(说法比较通俗...)
从长度来看空字串的长度是0 而NULL长度为NULL
在InnoDB中 NULL比空字串占用更少的空间哦