SQL IN运算符
SQL IN 是一个逻辑运算符,允许我们在 WHERE 子句中指定多个值或子查询。
它返回指定列与列表中的任一值匹配的所有行。值列表或子查询必须在括号内指定,例如IN (select查询) 或IN (Value1, Value2, Value3, …) 。
IN运算符可以与SQL中的任何数据类型一起使用。它用于基于指定值从数据库表中过滤数据。
在某些情况下,我们可以使用多个OR语句在SELECT、DELETE、UPDATE或INSERT语句中包含多个条件。而不是多个OR语句,我们可以使用IN运算符。
当您想选择与特定一组值匹配的所有行时,IN运算符非常有用。而当您想选择与多个条件中的任何一个匹配的所有行时,OR运算符非常有用。
语法
指定多个值的SQL IN运算符的基本语法如下−
其中,
- value1,value2,value3,… 是要针对表达式进行测试的列表中的值。如果在列表中找到任何这些值,则IN运算符返回TRUE,否则返回FALSE。
在SELECT语句中使用IN运算符
我们可以使用 SQL IN 运算符在WHERE子句中指定多个值,并且我们还可以在SELECT语句中使用它来检索与任何指定值匹配的数据。
在这里,我们使用IN运算符在SELECT语句中指定多个值。
示例
为了更好地理解,让我们考虑包含顾客个人详细信息的CUSTOMERS表,包括他们的姓名、年龄、地址和薪水等,如下所示 –
现在,使用INSERT语句将值插入到这个表中,操作如下:
下面的表格将被创建如下:
假设根据上表,我们想要显示名称等于’Khilan’、’Hardik’和’Muffy’(字符串值)的记录。可以使用 IN 运算符实现如下 –
输出
获得的结果如下所示-
注意 −我们不能在字符串值中使用通配符字符’%’,’_’等。可以使用OR运算符执行上述查询,如下所示−
输出
在UPDATE语句中使用IN操作符
我们还可以在UPDATE语句中使用SQL IN操作符,以便更新符合WHERE子句中指定的任何值的行。UPDATE语句用于修改数据库表中的现有数据。
示例
在这个示例中,我们使用IN操作符在UPDATE语句中指定多个值,并更新之前创建的CUSTOMERS表。在这里,我们将年龄为’25’或’27’的客户记录更改为’30’。
输出
我们得到以下结果。我们可以观察到3位客户的年龄已被修改 –
验证
我们可以通过使用SELECT语句检索其内容来验证表中的更改是否反映出来。以下是显示Customers表中记录的查询:
表格显示如下:
如我们在上表中看到的,’Khilan’、’Chaitali’和’Hardik’的年龄已更新为’30’。
使用NOT运算符和IN运算符
为了否定一个条件,我们使用NOT运算符。SQL的IN运算符可以与NOT运算符结合使用,在WHERE子句中排除特定的值。换句话说,将检查表达式中列表的缺席。
语法
下面是NOT IN运算符的基本语法:
示例
现在,我们试图显示CUSTOMERS表中所有不等于’25’、’23’和’22’的记录 –
输出
我们得到的结果如下所示:
使用IN运算符与列名
我们也可以使用SQL的IN运算符与列名一起,比较一个列的值与另一个列的值。它用于选择给定列中存在特定值的行。
示例
在下面的查询中,我们试图选择具有thSALARY列的值的行-
输出
这将产生以下结果−
使用IN运算符的子查询
我们可以使用带有IN运算符的子查询来返回来自单个列的记录。这意味着在子查询中不能包含SELECT列列表中的多个列。
语法
指定查询的IN运算符的基本语法如下:
这里,
- 子查询 − 这是一个SELECT语句,它有一个结果集用于与表达式进行测试。如果任何这些值与表达式匹配,则IN条件评估为true。
示例
在下面给出的查询中,我们显示所有来自CUSTOMERS表的记录,其中客户的姓名是通过工资大于2000获得的 –
输出
这将产生以下结果−