values什么意思insertinto插⼊空值_MySQL数据库的表中NULL和空值到底有
什么区别呢
浅谈 NULL 和空值的区别
NULL也就是在字段中存储NULL值
空字符串值也就是字段中存储空字符('')
我们来通过测试来看看 他们彼此的区别:
1、占⽤空间区别
mysql> select length(NULL), length(''), length('1');+--------------+------------+-------------+| length(NULL) | length('') | length('1') |+--------------+------------+-------------+| ==⼩结== : 从上⾯的测试可以看出 字符串空值('')的长度是0,是不占⽤空间的, ⽽的NULL长度是NULL,其实它是占⽤空间的!
NULL columns require additional space in the row to record whether their values are NULL.
意思是: NULL列需要⾏中的额外空间来记录它们的值是否为NULL
通俗意义上讲: ('')字符串空值就像是⼀个真空转态杯⼦,什么都没有,⽽NULL值就是⼀个装满空⽓的杯⼦,虽然看起来都是⼀样的,但是
有着本质的区别
2、插⼊⽅式区别
#创建⼀个表,tb_testcreate table tb_test(  id int unsigned primary key auto_increment,  one varchar(10) NOT NULL,  two varchar(255) DEFAULT NULL) ENGINE 3、在查询⽅式上的区别对⽐
#创建⼀个表,tb_test2create table tb_test2(  id int unsigned primary key auto_increment,  one varchar(10) NOT NULL,  two varchar(255) DEFAULT NULL) ENGI ==⼩结:== 如果要单纯查NULL值列,则使⽤ is NULL去查,单纯去查空值('')列,则使⽤ =''。
建议查询⽅式:NULL值查询使⽤is null/is not null查询,⽽空值('')可以使⽤=或者!=、等算术运算符来查!
4、在count()统计函数上的区别
#创建⼀个表,tb_test3create table tb_test3(  id int unsigned primary key auto_increment,  one varchar(10) NOT NULL,  two varchar(255) DEFAULT NULL) ENGI 实际开发到底是使⽤NULL值还是空值('')呢?
根据实际业务来进⾏区分, 个⼈建议在实际开发中如果没有特殊的业务场景,可以直接使⽤空字符串值('') !

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。