Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用

SQL 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用

原创
作者头像
小万哥
发布于 2023-11-20 12:48:50
发布于 2023-11-20 12:48:50
1.1K0
举报
文章被收录于专栏:程序人生丶程序人生丶

SQL NULL 值

什么是 NULL 值?

NULL 值是指字段没有值的情况。如果表中的字段是可选的,那么可以插入新记录或更新记录而不向该字段添加值。此时,该字段将保存为 NULL 值。需要注意的是,NULL 值与零值或包含空格的字段不同。具有 NULL 值的字段是在记录创建期间留空的字段。

如何测试 NULL 值?

使用比较运算符(如=、<或<>)无法测试 NULL 值。相反,我们必须使用 IS NULLIS NOT NULL 运算符。

IS NULL 语法

代码语言:sql
AI代码解释
复制
SELECT 列名
FROM 表名
WHERE 列名 IS NULL;

IS NOT NULL 语法

代码语言:sql
AI代码解释
复制
SELECT 列名
FROM 表名
WHERE 列名 IS NOT NULL;

演示数据库

以下是示例中使用的 Customers 表的一部分:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Maria Anders

Obere Str. 57

Berlin

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

4

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden

IS NULL 运算符

IS NULL 运算符用于测试空值(NULL 值)。以下 SQL 列出了所有具有 "Address" 字段中 NULL 值的客户:

代码语言:sql
AI代码解释
复制
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;

提示:始终使用 IS NULL 查找 NULL 值。

IS NOT NULL 运算符

IS NOT NULL 运算符用于测试非空值(非 NULL 值)。以下 SQL 列出了所有具有 "Address" 字段中有值的客户:

代码语言:sql
AI代码解释
复制
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;

这是关于 SQL NULL 值的基本介绍和示例。使用 IS NULLIS NOT NULL 运算符可以有效地处理数据库中的空值情况。

SQL UPDATE 语句

UPDATE 语句用于修改表中的现有记录。

UPDATE 语法

代码语言:sql
AI代码解释
复制
UPDATE 表名
SET1 =1,2 =2, ...
WHERE 条件;

注意:在更新表中的记录时要小心!请注意UPDATE语句中的WHERE子句。WHERE子句指定应更新哪些记录。如果省略WHERE子句,将会更新表中的所有记录!

演示数据库

以下是示例中使用的 Customers 表的一部分:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Maria Anders

Obere Str. 57

Berlin

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

4

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden

更新表

以下 SQL 语句将更新第一个客户(CustomerID = 1)的新联系人和新城市:

代码语言:sql
AI代码解释
复制
UPDATE Customers
SET ContactName = 'Alfred Schmidt', City = 'Frankfurt'
WHERE CustomerID = 1;

此时,"Customers"表的选择将如下所示:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Alfred Schmidt

Obere Str. 57

Frankfurt

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

4

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden

更新多条记录

决定更新多少记录取决于 WHERE 子句。

以下 SQL 语句将更新所有国家为 "Mexico" 的记录的 ContactName 为 "Juan":

代码语言:sql
AI代码解释
复制
UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';

此时,"Customers"表的选择将如下所示:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Alfred Schmidt

Obere Str. 57

Frankfurt

12209

Germany

2

Ana Trujillo Emparedados y helados

Juan

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Juan

Mataderos 2312

México D.F.

05023

Mexico

4

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden

更新警告!

在更新记录时要小心。如果省略 WHERE 子句,将更新所有记录!

示例

代码语言:sql
AI代码解释
复制
UPDATE Customers
SET ContactName='Juan';

此时,"Customers"表的选择将如下所示:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Juan

Obere Str. 57

Frankfurt

12209

Germany

2

Ana Trujillo Emparedados y helados

Juan

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Juan

Mataderos 2312

México D.F.

05023

Mexico

4

Around the Horn

Juan

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Juan

Berguvsvägen 8

Luleå

S-958 22

Sweden


这是关于SQL UPDATE语句的基本介绍和示例。UPDATE语句用于修改数据库表中的记录,可以根据需要更新单个或多个记录,但务必小心使用WHERE子句,以防止意外更新。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
sql初学笔记(10-17)语句
本文中,我们使用众所周知的 Northwind 样本数据库进行举例介绍。下面是选自 "Customers" 表的数据:
TRY博客-简单的网络技术
2022/07/18
2890
SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用
注意:在删除表中的记录时要小心!请注意DELETE语句中的WHERE子句。WHERE子句指定应删除哪些记录。如果省略WHERE子句,将会删除表中的所有记录!
小万哥
2023/11/21
2.8K0
SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用
深入理解 SQL UNION 运算符及其应用场景
以下SQL语句从“Customers”和“Suppliers”表中返回城市(仅不同的值):
小万哥
2023/11/28
5960
深入理解 SQL UNION 运算符及其应用场景
SQL 算术运算符:加法、减法、乘法、除法和取模的用法
存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活和通用。
小万哥
2023/12/01
1.2K0
SQL 算术运算符:加法、减法、乘法、除法和取模的用法
SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧
通配符字符用于替代字符串中的一个或多个字符。通配符字符与LIKE运算符一起使用。LIKE运算符用于在WHERE子句中搜索列中的指定模式。
小万哥
2023/11/24
5050
SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧
SQL FULL OUTER JOIN 关键字:左右表中所有记录的全连接解析
SQL RIGHT JOIN关键字返回右表(table2)中的所有记录以及左表(table1)中的匹配记录。如果没有匹配,则左侧的结果为0条记录。
小万哥
2023/11/27
4500
SQL FULL OUTER JOIN 关键字:左右表中所有记录的全连接解析
select top语句 mysql_SQL SELECT TOP 语句[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158565.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
2.6K0
SQL 中的运算符与别名:使用示例和语法详解
您还可以在WHERE子句中使用带有子查询的IN。使用子查询,您可以返回主查询结果中存在于子查询结果中的所有记录。
小万哥
2023/11/25
5110
SQL 中的运算符与别名:使用示例和语法详解
SQL LIKE 运算符:用法、示例和通配符解释
SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符:
小万哥
2023/11/23
6710
SQL LIKE 运算符:用法、示例和通配符解释
SQL 数据操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 语句详解
提示: SELECT INTO 还可以用于使用另一个表的架构创建新的空表。只需添加一个导致查询不返回数据的 WHERE 子句:
小万哥
2023/11/30
1.1K0
SQL 数据操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 语句详解
SQL HAVING 子句详解:在 GROUP BY 中更灵活的条件筛选
以下SQL语句列出了每个国家的客户数量,按高到低排序(只包括拥有超过5名客户的国家):
小万哥
2023/11/29
7320
SQL HAVING 子句详解:在 GROUP BY 中更灵活的条件筛选
SQL JOIN 子句:合并多个表中相关行的完整指南
注意,“Orders”表中的“CustomerID”列是指“Customers”表中的“CustomerID”。上述两个表之间的关系是“CustomerID”列。
小万哥
2023/11/26
1.1K0
SQL JOIN 子句:合并多个表中相关行的完整指南
AngularJS 表格
v1.5 中$http 的 success 和 error 方法已废弃。使用 then 方法替代。
陈不成i
2021/07/23
1.9K0
肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
大家可能不习惯SQL大写的习惯,但是真正的规范就是要大写,所以大家要慢慢习惯我用大写的方式讲解。在下面所有的讲解中,我将会以基本语法,案例,联系形式讲解,从而加强对每一个语句的使用和认识。本篇文章是笔者整理了整整一个通宵才写出,希望大家三连好评,谢谢。当然,拥有本篇文章,你将会完全掌握mysql的所有命令使用,不再用去购买或者杂乱学习。本篇内容暂时讲解数据库的筛选部分,因为数据库的最初入门如创建,备份等都有讲过,魔法传送:传送门 该传送门内容有:
全栈程序员站长
2022/08/10
10.3K0
肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
软件测试|SQL中的null值,该如何理解?
Null值在SQL中是用于表示缺失或未知数据的特殊值。本文将深入探讨Null值的概念、处理方法和注意事项,以帮助读者更好地理解和处理SQL中的缺失数据。
霍格沃兹测试开发Muller老师
2023/09/07
4750
mysql 数据_MySQL和SQL
附带国内精确到市,国外的精确到省吧。 下载这里的:https://download.csdn.net/download/luolincsdn/10675557 有的下载都没用,想一想还是放出来比较好。 这是数据表:
全栈程序员站长
2022/11/11
11.6K0
推荐阅读
相关推荐
sql初学笔记(10-17)语句
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档