SQL查询结果中的NULL代表什么意思

SQL查询结果中的NULL代表什么意思,第1张

Null是在计算中具有保留的值。

Null用于指示指针不引用有效对象。程序通常使用空指针来表示条件,例如未知长度列表的结尾或未执行某些 *** 作这种空指针的使用可以与可空类型和选项类型中的Nothing值进行比较。

空指针不应与未初始化的指针混淆,保证空指针与指向有效对象的任何指针进行比较。但是,根据语言和实现,未初始化的指针可能没有任何此类保证。它可能与其他有效指针相等或者它可能比较等于空指针。它可能在不同的时间做两件事。

扩展资料:

空字符通常表示为源代码字符串字符或字符常量中的转义序列。在许多语言,这不是一个单独的转义序列,而是八进制转义序列,单个八进制数字为0。

因此,‘\0’不能跟随任何数字0通过7否则它被解释为更长的八进制转义序列的开始。被在使用中发现各种语言的其他转义序列\000,\x00,\z,或的Unicode表示\u0000。

表示空字符的能力并不总是意味着生成的字符串将被正确解释,因为许多程序将认为null作为字符串的结尾。因此,键入它的能力会创建一个称为空字节注入的漏洞,并可能导致安全漏洞。

参考资料来源:百度百科—Null

假设有如下一张表,名为 Product (DDL 见本文结尾):

在使用 DISTINCT 时, NULL 也被视为一类数据。 NULL 存在于多行中时,也会被合并为一条 NULL 数据。

对含有 NULL 数据的列使用 DISTINCT 关键字:

执行结果为:

考虑一下在 SQL 语句中如下运算的结果:

正确答案是 全为 NULL 。实际上 所有包含 NULL 的计算,结果肯定是 NULL

当我们尝试取出不是进货单价不是 2800 日元( purchase_price <>2800 )的记录时:

执行结果为:

执行结果中并 没有 “叉子”和“圆珠笔”。这两条记录由于进货单价不明( NULL ),因此无法判定是不是 2800 日元。

当你尝试使用 purchase_price = NULL 或 purchase_price <>NULL 作为查询条件时,均 查询不到任何记录

替代的,你可以使用 purchase_price IS NULL 和 purchase_price IS NOT NULL 来查询你想要的记录。如:

执行结果为:

下列是三值逻辑中 AND 和 OR 运算的真值表:

除 COUNT(*) 外,聚合函数只对 NULL 以外的对象进行汇总。

执行如下查询语句,结果已在注释中标出:

当聚合键中包含 NULL 时,也会将 NULL 作为一组特定的数据:

执行结果为:

使用含有 NULL 的列作为排序键时,NULL 会在结果的 开头或末尾 汇总显示:

执行结果为:

允许空值的意思。

允许空值和有默认值并不冲突,插入数据时如果指定使用默认值,它会使用这个默认值0,如果插入数据时不指定这一列,它会保持空值。

空值是不占用空间的,MySQL中的NULL其实是占用空间的。

扩展资料:

使用NULL可以区分“没有输入数据”和“输入空数据”, 差异在于:

NULL的长度就是NULL,空字符串的长度为0。

一串NULL数据比空字符串优先排序。

COUNT(message)会将空字符串计数进去,但是不会将NULL数据们计入。

可以使用绑定变量搜索某个空字符串,但是不可以这样搜索NULL。

在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。包含NULL的表达式总是会导出NULL值,除非在关于 *** 作符的文档中以及表达式的函数中作了其他规定。


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

原文地址:https://54852.com/sjk/9898467.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存