SQL LOGICAL OPERATORS

2024年8月29日 | 阅读 7 分钟

逻辑运算符只返回一种形式的结果,即要么显示查询为真,要么显示查询为假。显示的结果用于组合或合并多个真或假的数据。

SQL 中的逻辑运算符如下:

  1. SQL AND 运算符
  2. SQL OR 运算符
  3. SQL NOT 运算符
  4. SQL BETWEEN 运算符
  5. SQL IN 运算符
  6. SQL LIKE 运算符

让我们通过示例逐一了解每个运算符。示例中的所有查询都将使用 MySQL 数据库编写。

假设我们有一个 employees 表,包含以下数据:

E_ID名称薪金城市指定入职日期年龄
1Sakshi Kumari50000孟买项目经理2021-06-2024
2Tejaswini Naik75000德里系统工程师2019-12-2423
3Anuja Sharma40000斋浦尔管理者2021-08-1526
4Anushka Tripathi90000孟买软件测试员2021-06-1324
5Rucha Jagtap45000班加罗尔项目经理2020-08-0923
6Rutuja Deshmukh60000班加罗尔管理者2019-07-1726
7Swara Baviskar55000斋浦尔系统工程师2021-10-1024
8Sana Sheik45000Pune软件工程师2020-09-1026
9Swati Kumari50000Pune软件测试员2021-01-0125
10Mayuri Patel60000孟买项目经理2020-10-0224
11Simran Khanna45500戈尔哈布尔HR2019-01-0226
12Shivani Wagh50500德里软件开发人员2016-09-1025
13Kiran Maheshwari50000NashikHR2013-12-1223
14Tejal Jain40000德里项目经理2017-11-1025
15Mohini Shah38000Pune软件开发人员2019-03-0520

1. SQL AND 运算符

SQL AND 运算符与 SQL 查询中的 WHERE 子句一起使用。SQL 中的 AND 运算符只返回满足 SQL 查询中两个条件的记录。

让我们看下面的示例,它解释了如何在 SQL 查询中执行 AND 运算符。

示例

编写一个查询,从 employees 表中仅检索那些职位为“项目经理”且员工所属城市为“孟买”的员工记录。

查询

在这里,我们编写了一个带有 WHERE 子句的 SELECT 查询,作用于 City 列和 Designation 列,并在两个条件之间使用了“AND”运算符。employees 表中任何同时满足这两个条件(即员工所属城市为孟买,且其职位为项目经理)的记录,才会被包含在输出中。

您将得到以下输出

E_ID名称薪金城市指定入职日期年龄
1Sakshi Kumari50000孟买项目经理2021-06-2024
10Mayuri Patel60000孟买项目经理2020-10-0224

在 employees 表中,只有两条记录的城市名为“孟买”且职位名为“项目经理”。

2. SQL BETWEEN 运算符

该运算符显示落在 SQL 查询中给定范围内的记录。BETWEEN 运算符的结果包括给定范围的起始值和结束值。

让我们看下面的示例,它解释了如何在 SQL 查询中执行 BETWEEN 运算符。

示例

编写一个查询,从 employees 表中仅检索那些员工薪资在 50000 到 90000 之间的记录。

查询

在这里,我们编写了一个带有 WHERE 子句的 SELECT 查询,作用于 Salary 列,并使用了“BETWEEN”运算符。BETWEEN 运算符后面跟着起始值 50000 和结束值 90000,中间用“AND”运算符连接。employees 表中任何满足条件(即员工薪资在 50000 和 90000 之间)的记录,才会被包含在输出中。

您将得到以下输出

E_ID名称薪金城市指定入职日期年龄
1Sakshi Kumari50000孟买项目经理2021-06-2024
2Tejaswini Naik75000德里系统工程师2019-12-2423
4Anushka Tripathi90000孟买软件测试员2021-06-1324
6Rutuja Deshmukh60000班加罗尔管理者2019-07-1726
7Swara Baviskar55000斋浦尔系统工程师2021-10-1024
9Swati Kumari50000Pune软件测试员2021-01-0125
10Mayuri Patel60000孟买项目经理2020-10-0224
12Shivani Wagh50500德里软件开发人员2016-09-1025
13Kiran Maheshwari50000NashikHR2013-12-1223

在 employees 表中,有九条记录的薪资在 50000 到 90000 之间。

3. SQL OR 运算符

SQL OR 运算符与 SQL 查询中的 WHERE 子句一起使用。SQL 中的 OR 运算符返回满足 SQL 查询中任一条件的记录。

让我们看下面的示例,它解释了如何在 SQL 查询中执行 OR 运算符。

示例

编写一个查询,从 employees 表中仅检索那些员工职位为“系统工程师”或员工所属城市为“孟买”的记录。

查询

在这里,我们编写了一个带有 WHERE 子句的 SELECT 查询,作用于 City 列和 Designation 列,并在两个条件之间使用了“OR”运算符。employees 表中任何满足任一条件(即员工所属城市为孟买,或其职位为系统工程师)的记录,才会被包含在输出中。

您将得到以下输出

E_ID名称薪金城市指定入职日期年龄
1Sakshi Kumari50000孟买项目经理2021-06-2024
2Tejaswini Naik75000德里系统工程师2019-12-2423
4Anushka Tripathi90000孟买软件测试员2021-06-1324
7Swara Baviskar55000斋浦尔系统工程师2021-10-1024
10Mayuri Patel60000孟买项目经理2020-10-0224

在 employees 表中,只有五条记录的城市名为“孟买”或员工职位为“系统工程师”。

4. SQL IN 运算符

当我们想在单个 SQL 查询中检查一个或多个值时,我们在 SELECT 查询的 WHERE 子句中使用 IN 运算符。

让我们看下面的示例,它解释了如何在 SQL 查询中执行 IN 运算符。

示例

编写一个查询,从 employees 表中仅检索那些员工所属城市为孟买、班加罗尔或浦那的记录。

查询

在这里,我们编写了一个带有 WHERE 子句的 SELECT 查询,作用于 City 列,后跟 IN 运算符。由于我们只想要属于孟买、班加罗尔或浦那的记录,我们将孟买、班加罗尔和浦那作为参数传递给 IN 运算符。因此,如果任何记录的 City 值与传递给 IN 运算符的地点匹配,该记录才会被包含在输出中。

您将得到以下输出

E_ID名称薪金城市指定入职日期年龄
1Sakshi Kumari50000孟买项目经理2021-06-2024
4Anushka Tripathi90000孟买软件测试员2021-06-1324
5Rucha Jagtap45000班加罗尔项目经理2020-08-0923
6Rutuja Deshmukh60000班加罗尔管理者2019-07-1726
8Sana Sheik45000Pune软件工程师2020-09-1026
9Swati Kumari50000Pune软件测试员2021-01-0125
10Mayuri Patel60000孟买项目经理2020-10-0224
15Mohini Shah38000Pune软件开发人员2019-03-0520

在 employees 表中,只有八条记录的员工所属城市是孟买、班加罗尔或浦那。

5. SQL NOT 运算符

SQL 中的 NOT 运算符显示表中不满足条件的记录。NOT 运算符与 SELECT 查询中的 WHERE 子句一起使用。

让我们看下面的示例,它解释了如何在 SQL 查询中执行 NOT 运算符。

示例

编写一个查询,从 employees 表中仅检索那些员工职位不是项目经理的记录。

查询

在这里,我们编写了一个带有 WHERE 子句的 SELECT 查询,作用于 Designation 列,后跟 NOT 运算符。由于我们只想要职位不是项目经理的记录,我们将职位值“项目经理”提供给 NOT 运算符。因此,如果任何记录的职位值与提供给 NOT 运算符的值不匹配,该记录才会被包含在输出中。

您将得到以下输出

E_ID名称薪金城市指定入职日期年龄
2Tejaswini Naik75000德里系统工程师2019-12-2423
3Anuja Sharma40000斋浦尔管理者2021-08-1526
4Anushka Tripathi90000孟买软件测试员2021-06-1324
6Rutuja Deshmukh60000班加罗尔管理者2019-07-1726
7Swara Baviskar55000斋浦尔系统工程师2021-10-1024
8Sana Sheik45000Pune软件工程师2020-09-1026
9Swati Kumari50000Pune软件测试员2021-01-0125
11Simran Khanna45500戈尔哈布尔HR2019-01-0226
12Shivani Wagh50500德里软件开发人员2016-09-1025
13Kiran Maheshwari50000NashikHR2013-12-1223
15Mohini Shah38000Pune软件开发人员2019-03-0520

在 employees 表中,有十一条记录的职位不是项目经理。

6. SQL LIKE 运算符

SQL 中的 LIKE 运算符只显示表中与查询中指定模式匹配的数据。百分号 (%) 和下划线 (_) 是与 LIKE 运算符一起使用的两个通配符,用于执行模式匹配任务。

让我们看下面的示例,它解释了如何在 SQL 查询中执行 LIKE 运算符。

示例

编写一个查询,从 employees 表中仅检索那些薪资以数字 5 开头的员工记录。

查询

在这里,我们编写了一个带有 WHERE 子句的 SELECT 查询,作用于 Salary 列,后跟 LIKE 运算符。由于我们只想要薪资以数字 5 开头的记录,我们将值 '5%' 提供给 LIKE 运算符。因此,如果任何记录的薪资值以数字 5 开头,后面跟着任何其他数字,该记录才会被包含在输出中。

您将得到以下输出

E_ID名称薪金城市指定入职日期年龄
1Sakshi Kumari50000孟买项目经理2021-06-2024
7Swara Baviskar55000斋浦尔系统工程师2021-10-1024
9Swati Kumari50000Pune软件测试员2021-01-0125
12Shivani Wagh50500德里软件开发人员2016-09-1025
13Kiran Maheshwari50000NashikHR2013-12-1223

在 employees 表中,有五条记录的薪资以数字 5 开头。