NULL值的概念是造成SQL的新手的混淆的普遍原因,他们经常认为NULL是和一个空字符串''的一样的东西。不是这样的!例如,下列语句是完全不同的:
mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ("");两个语句把值插入到phone列,但是第一个插入一个NULL值而第二个插入一个空字符串。第一个的含义可以认为是“电话号码不知道”,而第二个则可意味着“她没有电话”。
在SQL中,NULL值在于任何其他值甚至NULL值比较时总是假的(FALSE)。包含NULL的一个表达式总是产生一个NULL值,除非在包含在表达式中的运算符和函数的文档中指出。在下列例子,所有的列返回NULL:
mysql> SELECT NULL,1+NULL,CONCAT('Invisible',NULL);如果你想要寻找值是NULL的列,你不能使用=NULL测试。下列语句不返回任何行,因为对任何表达式,expr = NULL是假的:
mysql> SELECT * FROM my_table WHERE phone = NULL;要想寻找NULL值,你必须使用IS NULL测试。下例显示如何找出NULL电话号码和空的电话号码:
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = "";在MySQL中,就像很多其他的SQL服务器一样,你不能索引可以有NULL值的列。你必须声明这样的列为NOT NULL,而且,你不能插入NULL到索引的列中。
当用LOAD DATA INFILE读取数据时,空列用''更新。如果你想要在一个列中有NULL值,你应该在文本文件中使用\N。字面上的词'NULL'也可以在某些情形下使用。见7.16 LOAD DATA INFILE句法。
当使用ORDER BY时,首先呈现NULL值。如果你用DESC以降序排序,NULL值最后显示。当使用GROUP BY时,所有的NULL值被认为是相等的。
为了有助于NULL的处理,你能使用IS NULL和IS NOT NULL运算符和IFNULL()函数。
分享到:
相关推荐
MySQL 中 Null 值的处理和风险 在 MySQL 中, Null 值的存在可能会对数据库的性能和数据的准确性产生影响。在本期中,我们将讨论为什么不建议给 MySQL 设置 Null 值,并分析 Null 值对数据统计的影响。 1. Null 值...
mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。mysql> select isnull(1+1);-> 0mysql> select isnull(1/0);-> 1使用= 的null ...
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1、MSSQL: ISNULL() 语法 Java代码 代码如下: ISNULL ( check_expression , replacement_value ) ISNULL ( check_expression , replacement_value ) ...
根据提供的文件信息,本文将详细解释 MySQL 中有关格式判断的相关知识点。主要分为三大部分:判断字符串是否为汉字、判断日期格式是否正确以及判断字符串是否全为数字。 ### 一、判断字符串是否为汉字 在 MySQL 中...
在MySQL数据库中,查询空字段或非空字段是常见的操作,尤其在处理包含NULL值的数据时。NULL值在SQL中代表未知或者未定义,它与空字符串或零值有着本质的区别。本文将深入探讨如何使用`IS NULL`和`IS NOT NULL`条件来...
在MySQL数据库中,处理NULL值是一项常见的任务,尤其是在进行数据查询和处理时。本文将详细介绍三个用于处理NULL值的关键函数:IFNULL、NULLIF和ISNULL。 首先,`ISNULL()`函数用于检查一个表达式是否为NULL。如果...
我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 ...
MySQL数据库在设计表结构时,`NULL` 和 `NOT NULL` 是两个重要的字段约束,它们在数据存储和查询中有着显著的区别。理解这些差异对于优化数据库性能和编写正确的SQL语句至关重要。 首先,我们需要明确“空值”和...
在MySQL数据库中,`NULL`值是一个特殊的存在,表示数据未知或者不存在。了解如何正确处理和比较`NULL`值对于数据库操作至关重要。本篇将详细阐述`NULL`值的概念、特性以及在MySQL中如何进行有效的`NULL`值比较。 ...
4. **IS NULL** 和 **IS NOT NULL**:这两个是用于检查某个值是否为`NULL`的判断语句,如在`WHERE`子句中筛选出`NULL`或非`NULL`的记录。 在设计数据库时,是否允许字段为`NULL`是一个重要的决策。`NULL`允许数据的...
本篇文章将深入探讨MySQL中`NULL`值与比较运算符之间的交互及其可能带来的问题。 1. **NULL与任何比较运算符的结果** 当我们尝试用比较运算符(如`>`、`、`>=`、`、`=`、`<>`或`!=`)来比较`NULL`值时,结果并不会...
IS NOT NULL 运算符用于判断记录中的某个字段是否为 NULL。 14.主键建立方法 在 MySQL 中,主键可以使用 PRIMARY KEY 约束来建立。主键可以使用一列或多列来建立。 15.视图操作限制 在 MySQL 中,不能在视图上...
在MySQL数据库中,`IS NULL` 语句用于判断某个字段的值是否为NULL。NULL在数据库中具有特殊的含义,它并不等同于零(0)或者空字符串,而是表示“未知”或“无值”。因此,当你需要检查某个字段是否为空时,必须使用...
在MySQL数据库中,`NULL` 是一个非常特殊的概念,它代表了一个未知的、无值的状态。处理`NULL`时需要注意一些关键点,以下是对这些知识点的详细解释: 1. **`IS NULL` 和 `IS NOT NULL`** 当我们需要判断某个字段...
`IFNULL()`是MySQL中的一个内置函数,用于检查指定的表达式是否为NULL。如果表达式的结果是NULL,`IFNULL`会返回它的第二个参数作为替代值。例如,如果我们有一个字段`field`,我们想将其NULL值替换为0,我们可以...
MySQL是一款广泛使用的开源关系型数据库管理系统,以其高效、稳定和灵活的特点在众多IT项目中扮演着核心角色。在本资源“mysql+stdbool.rar”中,包含两个关键文件:`my.ini`和`stdbool.h`,它们是配置和使用MySQL...