MySQL 中NULL和空值的区别

MySQL 中NULL和空值的区别,第1张

"空值"是对null值的中文叫法,两者同指一个东西。

我想楼主是想弄清楚null(空值)与零长度字符串''(或称为空字符串)之间的区别。

在代码里"零长度字符串"用一对没有间隔的英文引号''表示,它的数据类型是明确的即属于字符型,存储"零长度字符串"是要占用物理磁盘空间的;

而null值其数据类型是未知的,它不会占用物理磁盘空间。

在不存在约束限制的情况我们可以将Null值插入任何数据类型的字段里,而零长度字符串''只能插入到字符型数据类型字段中,插入其它类型字段会报错。

我们通过实测看看null(空值)与零长度字符串''(或称为空字符长)之间的区别:

1)输出所有的记录

select from students;

注意:此例输出源表中的全部记录,含null(空值)和零长度字符串''

2)输出电话为Null(空值)的记录

select from students where phone is null;

注意:此例只输出含Null(空值)的记录

3)输出电话为零长度字符串的记录

select from students where phone='';

注意:此例只输出含零长度字符串的记录。

4)输出电话不是零长度字符串的记录

select from students where phone<>'';

注意:此例MySQL的处理方式有些特别,连含Null值得记录也排除掉了,这与MSSQL的处理方式有点不一致。

5)输出电话不为空的记录

select from students where phone is not null;

注意:此例只要不含Null值的记录都予以输出

在MS

SQL

Server和Oracle这两个主要的数据库中,空值都比较特殊,不能直接用"="或"<>"号来比较,如果你要用这两个符号比较,就会发现,空值即不在等于的集内,也不在不等于的集内。

特别注意的是,空值用“<>”(不等于)比较时,也不在集合内!具体的你自已测试一下就明白了。

常见的做法是用"IS

NULL"或“IS

NOT

NULL”来确定是不是空值。比如你的情况应该改写语句为:

where itemno IS NULL

VB读取数据库中的空值是会出错,所以,应该提前判断一下:

if isnull(rsfields(2)) then

m="空值"

else

m=rsfields(2)

end if

最简单的办法是:

trim(rsfields(2) & "")

数据库中:

NULL表示“没有对(列)变量输入数据”,即在数据库中的NULL可以区分“没有对(列)变量输入数据”和“有对(列)变量输入数据”这两类情况。

而输入空字符串,则是这里的“有对(列)变量输入数据”这一类情况,即有输入数据,只是输入的数据为空字符串(含有终止符的还是)。

以上就是关于MySQL 中NULL和空值的区别全部的内容,包括:MySQL 中NULL和空值的区别、sql数据库查询中,空值查询条件怎么写、VB读取数据库里的空值,怎么读取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10184905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存