Mysql的NULL和空字符串

1.插入NULL不一定为NULL
NULL是一个比较特殊的字段。在MySQL数据库中,在不同的情形下,NULL往往代表不同的含义。这是MySQL数据库的一种特性。在普通的字段中(字符型的数据),插入NULL就是NULL。但是如果将一个NULL的数据插入到TimeStamp类型的字段中,NULL就不一定为NULL。
比如,如果往TimeStamp类型的列中插入NULL值,则其代表的就是系统的当前时间。如果往auto_increment属性的列中插入NULL值的话,则系统会插入一个正整数。而如果在字符型数据的列中插入NULL的数据,则其插入的就是一个NULL。

2.NULL与空字符串‘’是不一样的类型
空字符串不占空间大小,而NULL是要占空间的,这就好比一杯真空和一杯空气的区别。
count(col)的结果会排除col为NULL的行,而不会排除空字符串。(count(*)会被优化,总是直接返回总行数的)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql module Module context Spark SQL和DataFrames中的重...
    盗梦者_56f2阅读 5,520评论 0 19
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,065评论 0 19
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • TL,DR(太长,不读版) 天文学家最近给出了一个非常让人激动的发现:人类可能发现了外星人的踪迹。这个发现概括来讲...
    0ops阅读 631评论 0 0
  • 上个礼拜回宿舍的时候,看见同事的女儿在织围巾,我问她要送给谁啊?她说要送给她妈妈,当时觉得好厉害,15岁手就这...
    FairyP阅读 11,066评论 5 2