Mariadb 简明教程
MariaDB - Null Values
在处理 NULL 值时,记住它们是未知值。它们不是有效值,即空字符串或零。在表创建中,列规范允许设置它们以接受空值或拒绝空值。只需使用 NULL 或 NOT NULL 子句。这在缺少记录信息(如 ID 编号)的情况下有应用。
用户定义变量在明确赋值之前具有 NULL 值。存储例程参数和局部变量允许设置 NULL 值。当局部变量没有默认值时,它具有 NULL 值。
NULL 不区分大小写,并且具有以下别名 -
-
UNKNOWN (a boolean value)
-
\N
NULL Operators
标准比较运算符不能与 NULL 一起使用(例如 =、>、>=、⇐、< 或 !=),因为对 NULL 值的所有比较都返回 NULL,而不是 true 或 false。与 NULL 的比较或可能包含 NULL 的比较必须使用“<⇒”(NULL 安全)运算符。
其他可用的运算符有 -
-
IS NULL - 它测试 NULL 值。
-
IS NOT NULL - 它确认不存在 NULL 值。
-
ISNULL - 在发现 NULL 值时返回 1,在没有 NULL 值时返回 0。
-
COALESCE - 它返回列表中的第一个非 NULL 值,或者在没有非 NULL 值时返回 NULL 值。
Sorting NULL Values
在排序操作中,NULL 值具有最低的值,因此 DESC 顺序将 NULL 值放在底部。MariaDB 允许为 NULL 值设置更高的值。
有两种方法可以做到这一点,如下所示 -
SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;
另一种方法 -
SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;
NULL Functions
当任何参数为 NULL 时,函数通常会输出 NULL。但是,有一些函数专门设计用于管理 NULL 值。它们是 -
-
IFNULL() - 如果第一个表达式不为 NULL,则返回它。当它计算为 NULL 时,它返回第二个表达式。
-
NULLIF() - 当比较的表达式相等时,它返回 NULL,如果不相等,它返回第一个表达式。
SUM 和 AVG 等函数会忽略 NULL 值。