SQL 中的 Not in 和 In 语句

SQL 中的 Not in 和 In 语句

在本文中,我们将介绍 SQL 中的 Not in 和 In 语句,并提供丰富的示例说明。

阅读更多:SQL 教程

什么是 Not in 语句?

Not in 语句是 SQL 中的一种条件表达式,用于判断某个字段的值是否不在指定的值列表中。如果某个字段的值没有出现在列出的值之中,则 Not in 语句返回 True,否则返回 False。Not in 语句可以用在 SELECT、DELETE、UPDATE 语句中,用于过滤出或排除不满足条件的记录。

下面是一个示例,假设我们有一个名为 Students 的表,其中包含学生的姓名和年龄信息。我们想要查询年龄不在指定范围内的学生。可以使用 Not in 语句来实现:

SELECT Name, Age
FROM Students
WHERE Age NOT IN (18, 19, 20);
SQL

以上语句将返回年龄不在 18、19、20 这个范围内的所有学生的姓名和年龄。

什么是 In 语句?

In 语句是 SQL 中的一种条件表达式,用于判断某个字段的值是否在指定的值列表中。如果某个字段的值出现在列出的值之中,则 In 语句返回 True,否则返回 False。In 语句同样可以用在 SELECT、DELETE、UPDATE 语句中,用于过滤出满足条件的记录。

以下是一个示例,假设我们有一个名为 Customers 的表,其中包含客户的姓名和所在的城市信息。我们想要查询居住在北京或上海的客户。可以使用 In 语句来实现:

SELECT Name, City
FROM Customers
WHERE City IN ('北京', '上海');
SQL

以上语句将返回居住在北京或上海的所有客户的姓名和城市信息。

Not in 和 In 语句的区别

Not in 和 In 语句在功能上正好相反,一个是排除指定的值,一个是包含指定的值。在使用时需要根据具体的需求来选择。另外,Not in 和 In 语句的性能也有一定的差别。一般情况下,In 语句的性能要优于 Not in 语句,因为 Not in 语句需要对查询的结果集进行一次取反操作。

示例说明

以下是一个更复杂的示例,假设我们有一个名为 Orders 的表,其中包含订单的编号、产品名称和客户名称。我们想要查询购买了特定产品但不属于指定客户的订单。可以使用 Not in 语句来实现:

SELECT OrderID, ProductName, CustomerName
FROM Orders
WHERE ProductName = '手机' AND CustomerName NOT IN ('张三', '李四', '王五');
SQL

以上语句将返回购买了手机但不属于张三、李四和王五这三个客户的订单的订单编号、产品名称和客户名称。

而如果我们想要查询购买了特定产品并且属于指定客户的订单,可以使用 In 语句来实现:

SELECT OrderID, ProductName, CustomerName
FROM Orders
WHERE ProductName = '手机' AND CustomerName IN ('张三', '李四', '王五');
SQL

以上语句将返回购买了手机并且属于张三、李四和王五这三个客户的订单的订单编号、产品名称和客户名称。

总结

在本文中,我们介绍了 SQL 中的 Not in 和 In 语句,并提供了丰富的示例说明。Not in 语句用于判断某个字段的值是否不在指定的值列表中,而 In 语句用于判断某个字段的值是否在指定的值列表中。根据具体的需求,我们可以选择使用不同的条件表达式来过滤或排除记录。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册