如何在 SQL 中使用 IN

2025年3月17日 | 阅读 8 分钟

在本 SQL 文章中,您将学习如何在 SQL 数据库的查询中使用 IN 关键字。

SQL 中的 IN 关键字是什么?

IN 是结构化查询语言中的一个逻辑运算符,它允许数据库用户在 WHERE 子句中定义多个值。

带有 IN 运算符的 WHERE 子句会显示与给定值集匹配的记录。我们也可以在 IN 运算符的括号中指定子查询。

我们可以在 SQL 数据库的 INSERT、SELECT、UPDATE 和 DELETE 查询中使用 IN 运算符。

SQL 中的 IN 运算符取代了查询中多个 OR 条件的处理过程。

IN 运算符的语法

如果您想在 SQL 语句中使用 IN 运算符,您必须按顺序遵循以下步骤:

  1. 在 SQL 中创建一个数据库。
  2. 创建新的 SQL 表。
  3. 向表中插入数据。
  4. 查看插入的数据。
  5. 使用 SQL IN 运算符显示表的数据。

现在,我们将逐一简要解释每个步骤,并提供最佳 SQL 示例。

步骤 1:创建一个简单的数据库

第一步是在结构化查询语言中创建一个新的数据库。

以下 CREATE 语句将在 SQL Server 中创建新的 Mechanical_College 数据库。

步骤 2:创建新表

现在,使用以下 SQL 语法在数据库中创建新表。

以下 CREATE 语句将在 Mechanical_College 数据库中创建 Faculty_Info 表。

步骤 3:向表中插入数据

以下 INSERT 查询将教职员工的记录插入到 Faculty_Info 表中。

步骤 4:查看插入的数据

以下 SELECT 语句将显示 Faculty_Info 表的数据。


Faculty_IdFaculty_First_NameFaculty_Last_NameFaculty_Dept_IdFaculty_Joining_DateFaculty_CityFaculty_Salary
1001ArushSharma40012020-01-02德里20000
1002BulbulRoy40022019-12-31德里38000
1004SaurabhRoy40012020-10-10孟买45000
1005ShivaniSinghania40012019-07-15加尔各答42000
1006AvinashSharma40022019-11-11德里28000
1007ShyamBesas40032021-06-21勒克瑙35000

步骤 5:使用 IN 运算符以不同方式查看 Faculty_Info 表的数据

以下查询在 IN 运算符中使用数字值。

此查询仅显示 WHERE 子句的 IN 运算符中传递了薪水的教职员工的记录。

输出

Faculty_IdFaculty_First_NameFaculty_Dept_IdFaculty_Joining_DateFaculty_Salary
1002Bulbul40022019-12-3138000
1004Saurabh40012020-10-1045000
1005Shivani40012019-07-1542000
1007Shyam40032021-06-2135000

以下查询在 IN 逻辑运算符中使用文本或字符值。

此查询仅显示 WHERE 子句的 IN 运算符括号中包含该城市的教职员工的记录。

输出

Faculty_IdFaculty_First_NameFaculty_Joining_DateFaculty_City
1004Saurabh2020-10-10孟买
1005Shivani2019-07-15加尔各答
1007Shyam2021-06-21勒克瑙

以下查询在 IN 逻辑运算符中使用 DATE 格式。

此查询仅显示 WHERE 子句的 IN 运算符中传递了入职日期的教职员工的记录。

输出

Faculty_IdFaculty_First_NameFaculty_Dept_IdFaculty_Joining_DateFaculty_Salary
1001Arush40012020-01-0220000
1004Saurabh40012020-10-1045000
1005Shivani40012019-07-1542000
1007Shyam40032021-06-2135000

以下查询在 IN 逻辑运算符中使用 SQL UPDATE 命令。

此查询更新 WHERE 子句的 IN 运算符中传递了 Dept_Id 的教职员工的薪水。

要检查上述查询的结果,请在 SQL 中输入以下 SELECT 查询。

Faculty_IdFaculty_First_NameFaculty_Last_NameFaculty_Dept_IdFaculty_Joining_DateFaculty_CityFaculty_Salary
1001ArushSharma40012020-01-02德里20000
1002BulbulRoy40022019-12-31德里50000
1004SaurabhRoy40012020-10-10孟买45000
1005ShivaniSinghania40012019-07-15加尔各答42000
1006AvinashSharma40022019-11-11德里50000
1007ShyamBesas40032021-06-21勒克瑙50000

SQL IN 运算符与子查询

在结构化查询语言中,我们也可以在 IN 逻辑运算符中使用子查询。

带有子查询的 IN 运算符的语法如下:

如果您想理解带有子查询的 IN 运算符,您必须使用 CREATE 语句在结构化查询语言中创建两个不同的表。

以下查询将在数据库中创建 Faculty_Info 表。

以下查询将在数据库中创建 Department_Info 表。

以下 INSERT 查询将教职员工的记录插入到 Faculty_Info 表中。

以下 INSERT 查询将部门记录插入到 Department_Info 表中。

以下 SELECT 语句将显示 Faculty_Info 表的数据。


Faculty_IdFaculty_First_NameFaculty_Last_NameFaculty_Dept_IdFaculty_AddressFaculty_CityFaculty_Salary
1001ArushSharma400122 Street新德里20000
1002BulbulRoy4002120 Street新德里38000
1004SaurabhRoy4001221 Street孟买45000
1005ShivaniSinghania4001501 Street加尔各答42000
1006AvinashSharma400212 Street德里28000
1007ShyamBesas4003202 Street勒克瑙35000

以下查询显示 Department_Info 表中的部门记录。

How to Use IN in SQL

以下查询在 IN 运算符中使用子查询。

此查询显示 Faculty_Info 表的 Dept_ID 与 Department_Info 表的 Dept_Id 匹配的教职员工的记录。

输出

Faculty_IdFaculty_First_NameFaculty_Last_NameFaculty_Dept_IdFaculty_AddressFaculty_CityFaculty_Salary
1002BulbulRoy4002120 Street新德里38000
1006AvinashSharma400212 Street德里28000
1007ShyamBesas4003202 Street勒克瑙35000

SQL 中的 NOT IN 是什么?

NOT IN 是结构化查询语言中的另一个运算符,它与 SQL IN 运算符正好相反。它允许您访问表中未在 IN 运算符括号中传递的值。

NOT IN 运算符可用于 INSERT、UPDATE、SELECT 和 DELETE SQL 查询。

NOT IN 运算符的语法

如果您想在 SQL 语句中使用 NOT IN 运算符,您必须按顺序遵循以下步骤:

  1. 在 SQL 系统中创建一个数据库。
  2. 在数据库中创建一个新表。
  3. 向表中插入数据。
  4. 查看插入的数据。
  5. 使用 NOT IN 运算符查看数据。

现在,我们将逐一简要解释每个步骤,并提供最佳 SQL 示例。

步骤 1:创建简单的数据库

以下查询将在 SQL Server 中创建新的 Civil_Industry 数据库。

步骤 2:创建新表

以下查询将在Civil_Industry 数据库中创建 Worker_Info 表。

步骤 3:插入值

以下 INSERT 查询将工人的记录插入到 Worker_Info 表中。

步骤 4:查看表数据

以下查询显示 Worker_Info 表的数据。


Worker_IDWorker_NameWorker_GenderWorker_AgeWorker_AddressWorker_Saalary
1001Arush男性 (Male)18阿格拉35000
1002Bulbul女性 (Female)18勒克瑙42000
1004Saurabh男性 (Male)20勒克瑙45000
1005Shivani女性 (Female)18阿格拉28000
1006Avinash男性 (Male)22德里38000
1007Shyam男性 (Male)18Banglore20000

步骤 4:使用 NOT IN 运算符

以下查询在 NOT IN 运算符中使用数字数据。

此 SELECT 查询在输出中显示所有薪水未在 NOT IN 运算符中传递的工人。

上述语句的结果显示在下表中。

Worker_IDWorker_NameWorker_GenderWorker_AgeWorker_AddressWorker_Saalary
1002Bulbul女性 (Female)18勒克瑙42000
1004Saurabh男性 (Male)20勒克瑙45000
1007Shyam男性 (Male)18Banglore20000

以下查询在 NOT IN 逻辑运算符中使用字符或文本值。

此查询显示地址未在 NOT IN 运算符中传递的所有工人的记录。

输出

Worker_IDWorker_NameWorker_GenderWorker_AgeWorker_AddressWorker_Saalary
1001Arush男性 (Male)18阿格拉35000
1005Shivani女性 (Female)18阿格拉28000
1007Shyam男性 (Male)18Banglore20000

下一主题SQL INTERSECT