SQL 逻辑运算符

SQL 逻辑运算符

逻辑运算符是用来返回结果的,即它可以显示查询结果是真还是假。结果可以用于合并一个或多个真或假数据。

SQL中的逻辑运算符如下:

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

让我们逐个解释每个运算符,并通过示例进行说明。所有示例中的查询将使用MySQL数据库编写。

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

E_ID Name Salary City Designation Date_of_Joining Age
1 Sakshi Kumari 50000 Mumbai Project Manager 2021-06-20 24
2 Tejaswini Naik 75000 Delhi System Engineer 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Manager 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Software Tester 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Project Manager 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
7 Swara Baviskar 55000 Jaipur System Engineer 2021-10-10 24
8 Sana Sheik 45000 Pune Software Engineer 2020-09-10 26
9 Swati Kumari 50000 Pune Software Tester 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Project Manager 2020-10-02 24
11 Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Software Developer 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
14 Tejal Jain 40000 Delhi Project Manager 2017-11-10 25
15 Mohini Shah 38000 Pune Software Developer 2019-03-05 20

1. SQL AND 运算符

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

以下示例演示了如何在SQL查询中使用AND运算符。

示例:

编写一个查询来检索员工表中职位为“项目经理”的员工记录以及员工所属的城市为孟买。

**查询: **

mysql> SELECT * FROM employees WHERE City = "Mumbai" AND Designation = "Project Manager";

这里我们编写了一个带有WHERE子句的SELECT查询,该子句在City列和Designation列上使用’AND’运算符分隔两个条件。只有满足两个条件的employees表中的记录——即员工所属的城市是孟买并且他们的职位是项目经理——才会出现在输出中。

您将得到以下输出:

E_ID Name Salary City Designation Date_of_Joining Age
1 Sakshi Kumari 50000 Mumbai Project Manager 2021-06-20 24
10 Mayuri Patel 60000 Mumbai Project Manager 2020-10-02 24

在employees表中,只有两条记录的城市名称等于’Mumbai’,岗位名称等于’Project Manager’。

2. SQL BETWEEN运算符

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

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

例子:

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

查询:

mysql> SELECT * FROM employees WHERE Salary BETWEEN 50000 AND 90000;

在这里,我们编写了一个带有WHERE子句的SELECT查询,该查询基于Salary列使用’BETWEEN’运算符。BETWEEN运算符后面跟着开始值50000和结束值90000,两者之间用’AND’运算符分隔。只有满足条件的记录,即员工的薪水介于50000和90000之间,才会被考虑在输出中。

你将会得到以下输出:

E_ID Name Salary City Designation Date_of_Joining Age
1 Sakshi Kumari 50000 Mumbai Project Manager 2021-06-20 24
2 Tejaswini Naik 75000 Delhi System Engineer 2019-12-24 23
4 Anushka Tripathi 90000 Mumbai Software Tester 2021-06-13 24
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
7 Swara Baviskar 55000 Jaipur System Engineer 2021-10-10 24
9 Swati Kumari 50000 Pune Software Tester 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Project Manager 2020-10-02 24
12 Shivani Wagh 50500 Delhi Software Developer 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23

在员工表中,有九条记录的薪水在50000到90000之间。

3. SQL OR运算符

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

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

示例:

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

查询:

mysql> SELECT * FROM employees WHERE Designation = "System Engineer" OR City = "Mumbai";

这里我们编写了一个使用WHERE子句的SELECT查询,其中包含City列和Designation列之间的’OR’运算符。任何符合条件的员工表记录,即员工所属的城市为孟买,或者他们的职位为系统工程师,将被纳入输出结果中。

您将获得以下输出:

E_ID Name Salary City Designation Date_of_Joining Age
1 Sakshi Kumari 50000 Mumbai Project Manager 2021-06-20 24
2 Tejaswini Naik 75000 Delhi System Engineer 2019-12-24 23
4 Anushka Tripathi 90000 Mumbai Software Tester 2021-06-13 24
7 Swara Baviskar 55000 Jaipur System Engineer 2021-10-10 24
10 Mayuri Patel 60000 Mumbai Project Manager 2020-10-02 24

4. SQL IN 运算符

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

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

例子:

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

查询:

mysql> SELECT * FROM employees WHERE City IN ("Mumbai", "Bangalore", "Pune");

这里我们用IN运算符在City列上编写了一个带有WHERE子句的SELECT查询。由于我们只想要属于孟买,班加罗尔或浦那的记录,我们将孟买,班加罗尔和浦那作为参数传递给了IN运算符。所以,只有记录的City值与传递给IN运算符的地点匹配的记录才会被考虑在输出中。

你将得到以下输出:

E_ID Name Salary City Designation Date_of_Joining Age
1 Sakshi Kumari 50000 Mumbai Project Manager 2021-06-20 24
4 Anushka Tripathi 90000 Mumbai Software Tester 2021-06-13 24
5 Rucha Jagtap 45000 Bangalore Project Manager 2020-08-09 23
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
8 Sana Sheik 45000 Pune Software Engineer 2020-09-10 26
9 Swati Kumari 50000 Pune Software Tester 2021-01-01 25
10 Mayuri Patel 60000 Mumbai Project Manager 2020-10-02 24
15 Mohini Shah 38000 Pune Software Developer 2019-03-05 20

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

5. SQL NOT运算符

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

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

示例:

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

查询:

mysql> SELECT * FROM employees WHERE NOT Designation = "Project Manager";

在这里,我们编写了一个带有WHERE子句的SELECT查询,该子句基于Designation列,并接着使用了NOT运算符。由于我们只想要那些职位不是项目经理的记录,所以我们给NOT运算符的职位值设置为Project Manager。因此,只有那些记录的职位值与NOT运算符给定的值不匹配的情况将被考虑在输出中。

您将得到以下输出:

E_ID Name Salary City Designation Date_of_Joining Age
2 Tejaswini Naik 75000 Delhi System Engineer 2019-12-24 23
3 Anuja Sharma 40000 Jaipur Manager 2021-08-15 26
4 Anushka Tripathi 90000 Mumbai Software Tester 2021-06-13 24
6 Rutuja Deshmukh 60000 Bangalore Manager 2019-07-17 26
7 Swara Baviskar 55000 Jaipur System Engineer 2021-10-10 24
8 Sana Sheik 45000 Pune Software Engineer 2020-09-10 26
9 Swati Kumari 50000 Pune Software Tester 2021-01-01 25
11 Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Software Developer 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23
15 Mohini Shah 38000 Pune Software Developer 2019-03-05 20

在员工表中有11条记录,其职位不是项目经理。

6. SQL LIKE运算符

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

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

例子:

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

查询:

mysql> SELECT * FROM employees WHERE Salary LIKE "5%";

在这里,我们编写了一个包含WHERE子句的SELECT查询,该子句限定了Salary列,并使用了LIKE运算符。由于我们只想要那些薪资以数字5开头的记录,所以我们将LIKE运算符的值设置为’5%’。因此,只有那些薪资值以数字5开头,后面跟着任何其他数字的记录才会被包含在输出中。

你将得到以下输出:

E_ID Name Salary City Designation Date_of_Joining Age
1 Sakshi Kumari 50000 Mumbai Project Manager 2021-06-20 24
7 Swara Baviskar 55000 Jaipur System Engineer 2021-10-10 24
9 Swati Kumari 50000 Pune Software Tester 2021-01-01 25
12 Shivani Wagh 50500 Delhi Software Developer 2016-09-10 25
13 Kiran Maheshwari 50000 Nashik HR 2013-12-12 23

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程