SQL IN运算符

SQL IN运算符

  • IN是SQL中的一个运算符,通常与WHERE子句一起使用。
  • 使用IN运算符,可以指定多个值。
  • 它允许我们轻松测试一个表达式是否与值列表中的任何值匹配。
  • IN运算符用于替代多个OR条件。

SQL中IN运算符的语法:

SELECT ColumnName FROM TableName WHERE ColumnName IN (Value 1, Value 2,…., ValueN);

现在让我们通过示例深入了解SQL中的IN操作符。所有示例中的查询将使用MySQL数据库编写。

假设我们有一个包含以下数据的t_students表:

ID Name Hometown Percentage Favourite_Subject
1 Soniya Jain Udaipur 89 Physics
2 Harshada Sharma Kanpur 92 Chemistry
3 Anuja Rajput Jaipur 78 History
4 Pranali Singh Nashik 88 Geography
5 Renuka Deshmukh Panipat 90 Biology
6 Swati Kumari Faridabad 93 English
7 Prachi Jaiswal Gurugram 96 Hindi
8 Sheetal Sonar Jaipur 93 Physics
9 Erica Goenka Faridabad 92 Biology
10 Monali Chaudhari Panipat 90 History

示例1:

编写一个查询,显示t_students表中所有学生的记录,其中学生的家乡是以下地点之一:Faridabad,Panipat或Jaipur。

查询语句:

mysql> SELECT *FROM t_students WHERE Hometown IN ("Faridabad", "Panipat", "Jaipur");

在这里,我们编写了一个带有WHERE子句的SELECT查询,该子句基于Hometown列和IN运算符。所有被允许作为Hometown列的地点——Faridabad、Panipat或Jaipur——都作为参数传递给IN运算符。因此,只有t_students表中的那些家乡是传递给IN运算符的地点之一的学生将被考虑在输出中。

您将得到以下输出:

ID Name Hometown Percentage Favourite_Subject
3 Anuja Rajput Jaipur 78 History
5 Renuka Deshmukh Panipat 90 Biology
6 Swati Kumari Faridabad 93 English
8 Sheetal Sonar Jaipur 93 Physics
9 Erica Goenka Faridabad 92 Biology
10 Monali Chaudhari Panipat 90 History

在 t_students 表中有六名学生的家乡是以下地方之一:Faridabad,Panipat 或 Jaipur。

示例2:

编写查询以显示 t_students 表中所有学生的记录,其中学生的喜欢科目是以下科目之一:History,Biology,Physics 或 Chemistry。

查询:

mysql> SELECT *FROM t_students WHERE Favourite_Subject IN ("History", "Biology", "Physics", "Chemistry");

这里,我们使用了SELECT查询,并在Favourite_Subject列上添加了WHERE子句,接着是IN运算符。在IN运算符中,将允许的所有学科,即历史、生物、物理或化学作为参数传递。因此,输出中只会考虑那些t_students表中喜欢的学科是传递给IN运算符的学科之一的学生。

你将得到以下输出:

ID Name Hometown Percentage Favourite_Subject
1 Soniya Jain Udaipur 89 Physics
2 Harshada Sharma Kanpur 92 Chemistry
3 Anuja Rajput Jaipur 78 History
5 Renuka Deshmukh Panipat 90 Biology
8 Sheetal Sonar Jaipur 93 Physics
9 Erica Goenka Faridabad 92 Biology
10 Monali Chaudhari Panipat 90 History

在t_students表中有七个学生,他们最喜欢的科目是以下科目之一: 历史、生物、物理或化学。

示例3:

编写一个查询,显示t_students表中所有学生的记录,其中学生获得的百分比是以下值之一: 78、88、89、90或92。

查询:

mysql> SELECT *FROM t_students WHERE Percentage IN (78, 88, 89, 90, 92);

这里,我们编写了一个带有WHERE子句的SELECT查询,后跟IN运算符的Percentage列。IN运算符的参数是所有在Percentage列中允许的值,即78、88、89、90或92。因此,只有那些在t_students表中取得了IN运算符传递的百分比值之一的学生将被考虑在输出中。

您将得到以下输出:

ID Name Hometown Percentage Favourite_Subject
1 Soniya Jain Udaipur 89 Physics
2 Harshada Sharma Kanpur 92 Chemistry
3 Anuja Rajput Jaipur 78 History
4 Pranali Singh Nashik 88 Geography
5 Renuka Deshmukh Panipat 90 Biology
9 Erica Goenka Faridabad 92 Biology
10 Monali Chaudhari Panipat 90 History

t_students表中有七个学生,他们获得了以下百分比值之一:78、88、89、90或92。

考虑我们有另一个表employee,其中包含以下数据:

ID Name Date_of_Birth Department Salary Job_Location
1 Mansi Shah 1999-01-10 Marketing 35000 Surat
2 Tejal Wagh 1993-07-05 HR 52000 Pune
3 Sejal Kumari 1995-06-08 Production 60000 Nashik
4 Sonal Jain 1996-12-10 HR 23000 Surat
5 Surili Maheshwari 1993-05-03 Development 75000 Shimla
6 Shrusti Sharma 1999-01-10 Accounts 53000 Noida
7 Ankita Joshi 1990-10-01 RnD 48000 Delhi
8 Sharda Patel 1989-12-12 Marketing 30000 Delhi
9 Shivangi More 1989-01-09 Accounts 67000 Mumbai
10 Shweta Tiwari 1981-10-09 Purchasing 60000 Bangalore

示例4:

编写一个查询以显示员工表中生日为以下日期之一的所有记录:1999-01-10,1989-01-09,1993-03-05或1993-05-03。

查询:

mysql> SELECT *FROM employee WHERE Date_of_Birth IN ("1999-01-10", "1989-01-09", "1993-03-05", "1993-05-03");

在这里,我们编写了一个带有WHERE子句的SELECT查询,后跟IN运算符的Date_of_Birth列。所有在Date_of_Birth列中允许的日期,即1999-01-10、1989-01-09、1993-03-05或1993-05-03,作为参数传递给IN运算符。因此,只有符合与IN运算符传递的日期相匹配的员工将被考虑在输出中。

您将获得以下输出:

ID Name Date_of_Birth Department Salary Job_Location
1 Mansi Shah 1999-01-10 Marketing 35000 Surat
5 Surili Maheshwari 1993-05-03 Development 75000 Shimla
6 Shrusti Sharma 1999-01-10 Accounts 53000 Noida
9 Shivangi More 1989-01-09 Accounts 67000 Mumbai

示例5:

编写一个查询以显示employee表中员工的所有记录,其中员工所在的部门属于以下部门之一:采购、财务、市场营销、生产或研发。

查询语句:

mysql> SELECT *FROM employee WHERE Department IN ("Purchasing", "Accounts", "Marketing", "HR", "Production", "RnD");

在这里,我们编写了一个在Department列上带有WHERE子句和IN运算符的SELECT查询。将允许的所有部门,即Purchasing、Accounts、Marketing、Production或RnD,作为参数传递给IN运算符。因此,只有那些在传递给IN运算符的部门中工作的员工将被考虑在输出中。

您将获得以下输出结果:

ID Name Date_of_Birth Department Salary Job_Location
1 Mansi Shah 1999-01-10 Marketing 35000 Surat
2 Tejal Wagh 1993-07-05 HR 52000 Pune
3 Sejal Kumari 1995-06-08 Production 60000 Nashik
4 Sonal Jain 1996-12-10 HR 23000 Surat
6 Shrusti Sharma 1999-01-10 Accounts 53000 Noida
7 Ankita Joshi 1990-10-01 RnD 48000 Delhi
8 Sharda Patel 1989-12-12 Marketing 30000 Delhi
9 Shivangi More 1989-01-09 Accounts 67000 Mumbai
10 Shweta Tiwari 1981-10-09 Purchasing 60000 Bangalore

雇员表中有九个员工在采购、帐务、营销、生产或研发部门工作。

示例6:

编写一个查询,显示员工表中工作地点在以下地方之一的所有记录:纳西克、苏拉特、诺伊达、德里或浦那。

查询:

mysql> SELECT *FROM employee WHERE Job_location IN ("Nashik", "Surat", "Noida", "Delhi", "Pune");

在这里,我们编写了一个带有WHERE子句的SELECT查询,该子句是基于Job_Location列的IN运算符。将Job_Location列中允许的所有地点,如Nashik,Surat,Noida,Delhi或Pune作为参数传递给IN运算符。因此,只有那些工作地点位于传递给IN运算符的地点中的员工将被考虑在输出中。

您将获得以下输出:

ID Name Date_of_Birth Department Salary Job_Location
1 Mansi Shah 1999-01-10 Marketing 35000 Surat
2 Tejal Wagh 1993-07-05 HR 52000 Pune
3 Sejal Kumari 1995-06-08 Production 60000 Nashik
4 Sonal Jain 1996-12-10 HR 23000 Surat
6 Shrusti Sharma 1999-01-10 Accounts 53000 Noida
7 Ankita Joshi 1990-10-01 RnD 48000 Delhi
8 Sharda Patel 1989-12-12 Marketing 30000 Delhi

在员工表中有7个员工的工作地点是Nashik、Surat、Noida、Delhi或Pune。

示例7:

编写一个查询,显示员工表中薪水为以下值之一的所有记录: 60000、53000、30000或45000。

查询:

mysql> SELECT *FROM employee WHERE Salary IN (60000, 53000, 30000, 45000);

在这里,我们使用了一个SELECT查询,并在Salary列之后使用了WHERE子句和IN运算符。在IN运算符的参数中传递了Salary列中允许的所有值,即60000、53000、30000或45000。因此,只有那些薪水在传递给IN运算符的值之间的员工将被考虑在输出中。

你将得到以下输出:

ID Name Date_of_Birth Department Salary Job_Location
3 Sejal Kumari 1995-06-08 Production 60000 Nashik
6 Shrusti Sharma 1999-01-10 Accounts 53000 Noida
8 Sharda Patel 1989-12-12 Marketing 30000 Delhi
10 Shweta Tiwari 1981-10-09 Purchasing 60000 Bangalore

在员工表中,有四个员工的薪水分别为60000、53000、30000和45000。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程