Mysql中的NULL和Empty String
最近新接触Mysql,昨天新建一个表用于存储表结构信息: create table tablist(TABLE_SCHEMA varchar(40),TABLE_NAME varchar(40),COLUMN_NAME varchar(40),COLUMN_TYPE varchar(40),IS_NULLABLE varchar(10),COLUMN_DEFAULT varchar(40),COLUMN_COMMENT varchar(1000),REMARK varchar(2000)); insert into tablist(TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_TYPE,IS_NULLABLE,COLUMN_DEFAULT,COLUMN_COMMENT) select TABLE_SCHEMA,COLUMN_COMMENT from information_schema.`COLUMNS` where TABLE_SCHEMA='leo'; 然后查询tablist表: 看看有哪些列没有comment于是: select * from tablist where COLUMN_COMMENT is null; 查到的结果居然是Empty set。不过从以上查询结果和navicat都能看出:null值在结果集中显示的是'null'的单词,而空字符串则显示为空。 查过资料后发现Mysql的null值和空字符串是有区别的,这里很奇怪COLUMN_COMMENT在经过insert之后,null值居然变成了空字符串(原因未明)。 使用 NULL columns require additional space in the row to record whether their values are NULL.For MyISAM tables,each NULL column takes one bit extra,rounded up to the nearest byte. 在Mysql的myisam引擎中,null值占用额外的存储空间(1bit),空字符串则完全不占用空间。同时null值在B树索引中也无法被存储,数据量大时会造成较严重的性能问题。 两者的查询方式也不一样:null值查询使用is null/is not null查询,而empty string使用=或者!=查询即可。 总结 以上所述是小编给大家介绍的Mysql中的NULL和Empty String,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何选择SQL Server数据库的排序规则
- sql-server-2008 – 如何为SQL Server 2008启用远
- 用Jersey构建RESTful服务6--Jersey+SQLServer+Hi
- 数据库 – 我应该学习/使用什么RDBMS? (MySql /
- sql-server-2005 – 使用SQL varchar(max)还是文
- SQLServer 2000 y 2005 con Dinamica....
- SQL Server SQL数据类型分析
- 2009年最新版 win2003 IIS6+PHP5+MySQL5+Zend Op
- SQLServer 2005 常用的函数
- sqlserver 目录名称无效解决办法