SQL IN和NOT IN操作符完全指南:语法、用法与实例

这是文章《SQL IN – SQL NOT IN》的第1部分(共1部分)。

内容片段: SQL IN运算符与WHERE子句一起使用,以在WHERE子句中提供多个值作为条件。

1. SQL中的IN操作

SQL中的IN运算符几乎相当于为同一列拥有多个OR运算符。让我们详细讨论一下SQL中的IN运算符。有两种定义IN运算符的方法,我们将在下面详细讨论这两种方法。

1.1) IN中的多个值

语法:

SELECT 列名 FROM 表名 WHERE 列名 IN (值1, 值2, ... 值N);

使用上述语法,我们可以将多个值定义为IN操作符的一部分。通过一些示例,我们将更详细地了解上述语法。让我们以下面的学生表为例进行说明。

学号 学生姓名 学生性别 学生年龄 学生百分比
1 乔治 14 85
2 莫妮卡 12 88
3 杰西卡 13 84
4 汤姆 11 78

场景:获取年龄为12或13岁的学生所占的百分比。查询:

SELECT 学生百分比 FROM 学生表 WHERE 学生年龄 IN ('12', '13');

输出:

学生百分比
88
84

1.2) 选择查询作为IN的一部分

语法:语法的规则和结构。

SELECT 列名 FROM 表名 WHERE 列名 IN (SELECT 语句);

通过上述语法,我们可以使用SQL SELECT语句作为IN运算符的一部分提供值。通过一些示例,我们将更详细地了解上述语法。让我们以产品和供应商表为例进行说明。产品表

产品ID 产品名称 产品价格
1 饼干 10
2 奶酪 11
3 巧克力 15
4 果酱 20

供应商表

产品ID 产品名称 供应商名称
1 饼干 ABC
2 奶酪 XYZ
3 巧克力 ABC
4 果酱 XDE

情景: 获取ABC供应商的产品价格。查询:

SELECT 产品价格 FROM 产品表 WHERE 产品名称 IN 
    (SELECT 产品名称 FROM 供应商表 WHERE 供应商名称 = "ABC");

结果:

产品价格
10
15

1.3) SQL嵌套IN

我们还可以在其他IN操作符中使用IN。为了更好地理解,让我们考虑以下场景。场景:获取供应商为ABC和XDE的产品价格。查询:

SELECT 产品价格 FROM 产品表 WHERE 产品名称 IN 
    (SELECT 产品名称 FROM 供应商表 WHERE 供应商名称 IN ( "ABC", "XDE" ));

输出

产品价格
10
15
20

2. SQL NOT IN

SQL的NOT IN运算符用于筛选结果,如果IN运算符中提及的值不满足条件。让我们详细讨论SQL的NOT IN运算符。语法:

SELECT 列名 FROM 表名 WHERE 列名 NOT IN (值1, 值2... 值N);

在上述语法中,作为IN子句的一部分而不满足的数值将被考虑为结果。让我们以之前定义的学生表为例进行说明。场景:获取年龄不是12或13的学生的百分比。查询。

SELECT 学生百分比 FROM 学生表 WHERE 学生年龄 NOT IN ('12', '13');

输出:

学生百分比
85
78

2.1) 使用子查询的NOT IN

语法:语法结构与短语或单词的组合方法。

SELECT 列名 FROM 表名 WHERE 列名 NOT IN (SELECT 语句);

使用上述语法,我们可以使用SELECT语句作为NOT IN运算符的一部分来提供值。通过一些示例,我们将更详细地了解上述语法。让我们考虑之前定义的产品和供应商表,以便举例说明。场景:获取供应商不是ABC的产品价格。查询:

SELECT 产品价格 FROM 产品表 WHERE 产品名称 NOT IN 
    (SELECT 产品名称 FROM 供应商表 WHERE 供应商名称 = "ABC");

以上就是SQL中IN和NOT IN操作符的示例。

bannerAds