MariaDB Null值

MariaDB Null值

在处理NULL值时,请记住它们是未知值。它们不是空字符串或零,这些是有效值。在表创建中,列的规范允许设置它们接受空值或拒绝它们。只需使用NULL或NOT NULL子句。这在缺失记录信息(如ID号)的情况下有应用。

用户定义的变量在明确赋值之前具有NULL值。存储过程参数和局部变量可以设置为NULL值。当局部变量没有默认值时,它具有NULL值。

NULL不区分大小写,并且具有以下别名−

  • UNKNOWN(布尔值)
  • \N

NULL运算符

标准比较运算符不能与NULL一起使用(例如,=,>,>=,<=,<或!=),因为与NULL值的所有比较都返回NULL,而不是true或false。与NULL或可能包含NULL的比较必须使用“<=>”(NULL-SAFE)运算符。

其他可用的运算符包括−

  • IS NULL − 它测试NULL值。

  • IS NOT NULL − 它确认没有NULL值。

  • ISNULL − 它在发现NULL值时返回1,在未发现时返回0。

  • COALESCE − 它返回列表中第一个非NULL值,如果没有则返回NULL值。

排序NULL值

在排序操作中,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 函数

通常情况下,当任何参数为NULL时,函数的输出值为NULL。然而,有些函数专门用于处理NULL值。它们包括:

  • IFNULL() - 如果第一个表达式不为NULL,则返回该表达式的值;如果该表达式为NULL,则返回第二个表达式的值。

  • NULLIF() - 当比较的两个表达式相等时返回NULL,否则返回第一个表达式的值。

SUM和AVG等函数会忽略NULL值。

插入NULL值

在声明为NOT NULL的列中插入NULL值会导致错误。在默认的SQL模式下,NOT NULL列会插入一个基于数据类型的默认值。

当字段是TIMESTAMP,AUTO_INCREMENT或虚拟列时,MariaDB会以不同的方式处理NULL值。在AUTO_INCREMENT列中插入值会导致该序列中的下一个数字被插入到该位置。在TIMESTAMP字段中,MariaDB会分配当前时间戳。在虚拟列中(本教程稍后会讨论),会分配默认值。

UNIQUE索引可以包含多个NULL值,但主键不能为NULL。

NULL值和Alter命令

当使用ALTER命令修改列时,在没有指定NULL规格的情况下,MariaDB会自动分配值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程