首页 帮助中心 常见问题 SQL中IS NULL和IS NOT NULL操作符
SQL中IS NULL和IS NOT NULL操作符
时间 : 2024-09-12 13:42:28 编辑 : 华纳云 阅读量 : 43

NULL值表示遗漏的未知数据,默认表的列可以存放NULL值。SQL NULL值中,如果表某列是可选的,那么可以在不向该列添加值情况下插入新记录或是更新记录。这样这个字段就会以NULL值保存。NULL值的处理方式和其他值不一样,NULL值用作未知或不适合值的占位符(不能比较NULL和0,两者不等价)。

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

 

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

 

Stavanger

如表persons中,Address列是可选的,如果在Address列插入一条不带值的记录,Address列会使用NULL值保存。如想测试NULL,可以通过比较运算符来测试NULL值,比如=、<或<>。需要使用IS NULL和IS NOT NULL操作符。

如果是选取在Address列中带有NULL值记录,必须使用IS NULL操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

结果集为(需要使用IS NULL来查找NULL值):

LastName

FirstName

Address

Hansen

Ola

 

Pettersen

Kari

 

如果是在表中仅仅选择Address列中不带NULL值的记录。需要使用IS NOT NULL操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

结果集:

LastName

FirstName

Address

Svendson

Tove

Borgvn 23

当数据库建表时,默认NULL,但在工作中一般建表时会禁用NULL。NULL表示的是一无所有。同空字符串、0是不等价的不可比较。如 <expr> = NULL 、 NULL = '' 得到的结果为 false,判断 NULL 必须使用 IS NULL 或 IS NOT NULL 进行判断。

在工作中,不会使用NULL。因为这不利于代码可读性和可维护性。对于强类型语言来说,查询INT值,结果得到NULL的话程序会出现崩溃。要兼容这样情况还要有执行更多操作不利于程序简易化。

如果是已经存在NULL值会影响 count()、 <col> != <value>、 NULL + 1 等查询、统计、运算情景的结果。

在SQL中,一般会有通配符来代替字符串中的任何其他字符,通配符一般都是和SQL LIKE操作符一起使用。SQL通配符可以用于搜索表中的数据。“%”可以替代 0 个或多个字符,“_”可以替代一个字符,“[charlist]”可以替代字符列中的任何单一字符,“[^charlist]

[!charlist]”替代不在字符列中的任何单一字符。

使用SQL%通配符, SQL 语句选取 url 以字母 "https" 开始的所有网站:

SELECT * FROM Websites

WHERE url LIKE 'https%';

下面的 SQL 语句选取 url 包含模式 "oo" 的所有网站:

SELECT * FROM Websites

WHERE url LIKE '%oo%';

下面的 SQL 语句选取 name 以一个任意字符开始,然后是 "oogle" 的所有客户:

SELECT * FROM Websites

WHERE name LIKE '_oogle';

欢迎持续关注华纳云

华纳云 推荐文章
SpringBoot项目jar包发布后获取jar包所在路径的方法 使用Dockerfile创建支持SSH服务的镜像的步骤 Linux快速部署DHCP服务器详细步骤 Linux使用pushd和popd高效切换目录 Windows上使用C#访问Ubuntu上Redis数据库 如何使用Bash补全功能简化linux和Docker命令行 如何使用SSHFS挂载远程目录 Linux中使用dd完成低级数据复制 Linux中显示和管理IP地址设置 如何在Ubuntu上安装Deepin桌面环境
客服咨询
7*24小时技术支持
技术支持
渠道支持