SQL NOT IN 命令详解

一、基本定义

SQL NOT IN 是 SQL 中一个常见的操作符,用于在 WHERE 子句中指定一个测试值集合,该测试值集合由用逗号分隔的值列表表示。 NOT IN 运算符与 IN 相反。它返回不在指定列表中的所有行。

二、基本语法

SELECT column_name(s) 
FROM table_name 
WHERE column_name NOT IN (value1, value2,...);

在上面的语法中:

  • column_name(s) 指定要返回的列。
  • table_name 指定要从中检索数据的表。
  • column_name 指定要测试值的列。
  • value1、value2 等指定不允许存在于表中的值。

三、实例演示

例如,我们有一个用户表 user,存储了所有已注册用户的个人信息。现在我们要查询所有没有注册国际短信业务的用户信息:

SELECT * 
FROM user 
WHERE id NOT IN (SELECT user_id FROM international_sms);

在这个示例中,我们使用了子查询来指定业务列表,然后列出了在 user 表中不匹配此列表的所有用户。

四、应用案例

1. 删除指定子查询结果

假设我们有一个商品 sales 表和一个库存 inventory 表。现在我们想在 inventory 表中删除所有商品已售完的记录。

DELETE FROM inventory 
WHERE product_id NOT IN (SELECT DISTINCT product_id FROM sales);

这里,我们使用了 NOT IN 运算符和子查询来指定应该从 inventory 表中删除的记录。

2. 查询两个表之间缺失的数据

假设我们有两个表 t1 和 t2,每个表都包含一个 id 列。如果我们想知道在 t1 中存在但在 t2 中不存在的所有 id 值,可以按如下方式查询:

SELECT t1.id 
FROM t1 
WHERE t1.id NOT IN (SELECT t2.id FROM t2);

在这个示例中,我们使用了 NOT IN 和子查询来返回在 t1 表中存在的但在 t2 表中不存在的所有 id 值。

3. 查询满足多个条件的数据

假设我们有一组订单数据,包括订单 ID、产品 ID 和销售日期等信息。如果我们想查询在两个指定日期之间出售的所有产品,可以使用以下代码:

SELECT * 
FROM orders 
WHERE date BETWEEN '2021-09-01' AND '2021-09-15' 
AND product_id NOT IN (SELECT product_id FROM returns);

在这个示例中,我们使用了 BETWEEN 和 NOT IN 运算符,以查询满足两个条件的订单。

总结

SQL NOT IN 命令可以用于在 WHERE 子句中指定一个测试值集合。它与 IN 命令相反,返回不在指定列表中的所有行。在实际的 SQL 应用中,NOT IN 通常与子查询搭配使用,可以提高查询的灵活性和效率,在数据处理中具有不可替代的作用。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/186330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-27 05:45
下一篇 2024-11-27 05:45

相关推荐

  • Hibernate日志打印sql参数

    本文将从多个方面介绍如何在Hibernate中打印SQL参数。Hibernate作为一种ORM框架,可以通过打印SQL参数方便开发者调试和优化Hibernate应用。 一、通过配置…

    编程 2025-04-29
  • 使用SQL实现select 聚合查询结果前加序号

    select语句是数据库中最基础的命令之一,用于从一个或多个表中检索数据。常见的聚合函数有:count、sum、avg等。有时候我们需要在查询结果的前面加上序号,可以使用以下两种方…

    编程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一种非常流行的ORM框架,提供了SQL映射配置文件,可以使用类似于传统SQL语言的方式编写SQL语句。其中,SQL的Limit语法是一个非常重要的知识点,能够实现分…

    编程 2025-04-29
  • Git config命令用法介绍:用正确的邮箱保障开发工作

    本文将详细介绍如何使用git config命令配置Git的全局和本地用户信息,特别是如何正确使用用户邮箱,保障Git操作的正常进行。 一、git config命令介绍 Git中的每…

    编程 2025-04-29
  • Python命令大全及说明

    Python是一种高级编程语言,由Guido van Rossum于1989年底发明。它具有良好的语法结构和面向对象的编程思想,具有简洁、易读、易学的特点,是初学者以及专业开发人员…

    编程 2025-04-29
  • Python SSH 远程执行命令

    Python SSH 远程执行命令是指在一个服务器上执行远程另一个服务器上命令。如果你需要在本地机器上执行命令,或者在远程机器上执行本地命令,你都可以使用 SSH。在 Python…

    编程 2025-04-29
  • SQL预研

    SQL预研是指在进行SQL相关操作前,通过数据分析和理解,确定操作的方法和步骤,从而避免不必要的错误和问题。以下从多个角度进行详细阐述。 一、数据分析 数据分析是SQL预研的第一步…

    编程 2025-04-28
  • 剖析命令执行函数

    在编程开发过程中,命令执行函数是非常常见的一个概念。它是指接受一个命令字符串,并将其解析执行,返回相应的结果或错误信息的函数。本文将从多个方面对命令执行函数进行详细的阐述,包括其定…

    编程 2025-04-28
  • 如何使用Python执行Shell命令并获取执行过程信息

    本文将介绍如何使用Python执行Shell命令并获取执行过程信息。我们将从以下几个方面进行阐述: 一、执行Shell命令 Python内置的subprocess模块可以方便地执行…

    编程 2025-04-28
  • Python中获取用户输入命令的方法解析

    本文将从多个角度,分别介绍Python中获取用户输入命令的方法,希望能够对初学者有所帮助。 一、使用input()函数获取用户输入命令 input()是Python中用于获取用户输…

    编程 2025-04-27

发表回复

登录后才能评论