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


    SQL NULL 值

    什么是 NULL 值?

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

    如何测试 NULL 值?

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

    IS NULL 语法

    SELECT 列名
    FROM 表名
    WHERE 列名 IS NULL;
    
    • 1
    • 2
    • 3

    IS NOT NULL 语法

    SELECT 列名
    FROM 表名
    WHERE 列名 IS NOT NULL;
    
    • 1
    • 2
    • 3

    演示数据库

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

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    IS NULL 运算符

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

    SELECT CustomerName, ContactName, Address
    FROM Customers
    WHERE Address IS NULL;
    
    • 1
    • 2
    • 3

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

    IS NOT NULL 运算符

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

    SELECT CustomerName, ContactName, Address
    FROM Customers
    WHERE Address IS NOT NULL;
    
    • 1
    • 2
    • 3

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

    SQL UPDATE 语句

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

    UPDATE 语法

    UPDATE 表名
    SET1 =1,2 =2, ...
    WHERE 条件;
    
    • 1
    • 2
    • 3

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

    演示数据库

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

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    更新表

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

    UPDATE Customers
    SET ContactName = 'Alfred Schmidt', City = 'Frankfurt'
    WHERE CustomerID = 1;
    
    • 1
    • 2
    • 3

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

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteAlfred SchmidtObere Str. 57Frankfurt12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    更新多条记录

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

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

    UPDATE Customers
    SET ContactName='Juan'
    WHERE Country='Mexico';
    
    • 1
    • 2
    • 3

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

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteAlfred SchmidtObere Str. 57Frankfurt12209Germany
    2Ana Trujillo Emparedados y heladosJuanAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaJuanMataderos 2312México D.F.05023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    更新警告!

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

    示例

    UPDATE Customers
    SET ContactName='Juan';
    
    • 1
    • 2

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

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteJuanObere Str. 57Frankfurt12209Germany
    2Ana Trujillo Emparedados y heladosJuanAvda. de la Constitución 2222México D.F.05021Mexico
    3Antonio Moreno TaqueríaJuanMataderos 2312México D.F.05023Mexico
    4Around the HornJuan120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpJuanBerguvsvägen 8LuleåS-958 22Sweden

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

    最后

    为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

    看完如果觉得有帮助,欢迎点赞、收藏关注

    在这里插入图片描述

  • 相关阅读:
    使用send给生成器注入数据
    python-pytorch 关于torch.load()和torch.load_state_dict()
    net/http完全超时手册
    开具数电票如何减少认证频次?
    c++三大概念要分清--重载,隐藏(重定义),覆盖(重写)
    Python 基于PyCharm断点调试
    卷积神经网络(VGG-16)海贼王人物识别
    2023-09-14力扣每日一题
    Python数据攻略-Pandas时间序列数据处理
    CentOS 7 - Linux 安装详解
  • 原文地址:https://blog.csdn.net/2302_76489021/article/details/134518277