SQL 逻辑运算符
逻辑运算符是用来返回结果的,即它可以显示查询结果是真还是假。结果可以用于合并一个或多个真或假数据。
SQL中的逻辑运算符如下:
让我们逐个解释每个运算符,并通过示例进行说明。所有示例中的查询将使用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开头。