MySQL NULL 值处理学习笔记

什么是NULL值?

在MySQL中,NULL表示一个缺失的值。它与空字符串''不同。

如果未将列初始化为任何值,或者将其设置为NULL,则该列将包含NULL值。

如何判断NULL值?

在MySQL中,我们不能使用等于(=)或不等于(<>)操作符来检查NULL值。

正确的方法是使用IS NULL或IS NOT NULL:

Copy Code
SELECT * FROM my_table WHERE column_name IS NULL; SELECT * FROM my_table WHERE column_name IS NOT NULL;

如何处理NULL值?

在MySQL中,我们可以使用IFNULL()函数来处理NULL值。

IFNULL()函数接受两个参数,如果第一个参数不为空,则返回第一个参数,否则返回第二个参数。

例如,假设我们有一个名为age的列,其中包含一些空值。我们可以使用IFNULL()函数将空值替换为0:

Copy Code
SELECT name, IFNULL(age, 0) as age FROM my_table;

实例

下面是一个实例,展示了如何在MySQL中处理NULL值:

Copy Code
-- 创建一个带有 NULL 值的表 CREATE TABLE my_table ( id INT, name VARCHAR(50), age INT ); INSERT INTO my_table VALUES (1, 'Alice', NULL), (2, 'Bob', 25), (3, 'Charlie', NULL), (4, 'David', 30); -- 查询年龄的平均值,将 NULL 值替换为 0 SELECT AVG(IFNULL(age, 0)) as avg_age FROM my_table;

此查询将返回所有人的平均年龄,其中空值被视为零。

总结

在MySQL中,NULL表示缺少值。我们可以使用IS NULL和IS NOT NULL操作符来检查列是否包含NULL值,并使用IFNULL()函数来处理NULL值。