SQL AND,OR,NOT – SQL逻辑运算符

时间:2020-02-23 14:32:23  来源:igfitidea点击:

SQL提供逻辑运算符,该运算符有助于根据某些条件过滤结果集。
我们将要讨论的SQL逻辑运算符是AND和OR或者NOT。
这三个是SQL查询中最常用的逻辑运算符。

1. SQL AND运算符

当我们要将多个条件合并为WHERE子句的一部分时,将使用SQL AND运算符。
结果集将基于两个条件的满足条件进行过滤。
因此,如果两个条件都成立,则仅结果将被过滤。
为了组合多个条件,我们可以在WHERE子句中使用多个AND。

1.1)SQL单一AND运算符范例

SQL AND运算符的语法为:

SELECT column(s) FROM table_name WHERE condition1 AND condition2;

如以上在组合两个条件的语法中所述,我们可以使用一个AND运算符。

现在,我们将通过一些示例来尝试理解一个AND运算符。

让我们考虑以下学生表格作为示例。

RollNoStudentNameStudentGenderStudentAgeStudentPercent
1GeorgeM1485
2MonicaF1388
3JessicaF1484
4TomM1378

方案:获取年龄在12岁以上且性别为女性的学生所占的百分比。

SELECT StudentPercent FROM Student WHERE StudentAge>12 AND StudentGender = "F";

输出:

StudentPercent
88
84

在上面的示例中,我们使用了一个AND运算符来组合两个条件,StudentAge大于12,StudentGender等于" F"。

让我们来看一个有关多个AND运算符的示例。

1.2)SQL多重AND运算符范例

SELECT column(s) FROM table_name WHERE condition1 AND condition2 AND condition3…AND conditionN;

如以上用于组合两个以上条件的语法中所述,我们可以使用多个AND运算符。

现在,通过一些示例,我们将尝试了解多个AND运算符。
让我们以先前定义的Student表为例。

方案:获取年龄在12岁以上且性别是女性且该比例超过80岁的学生所占的百分比。

SELECT StudentPercent FROM Student WHERE StudentAge>12 AND StudentGender = "F" AND StudentPercent>80;

输出:

StudentPercent
85
88
84

在上面的示例中,我们使用了一个AND运算符来组合三个条件,StudentAge大于12,StudentGender等于" F",StudentPercent大于80。

2. SQL OR运算符

当我们要将多个条件合并为WHERE子句的一部分时,将使用OR运算符。
将基于至少一个条件的满足来过滤结果集。
因此,如果至少有一个条件为真,则仅对结果进行过滤。
为了组合多个条件,我们可以在WHERE子句中使用多个OR。

2.1)SQL单或者运算符示例

语法:

SELECT column(s) FROM table_name WHERE condition1 OR condition2;

如上面结合两个条件的语法中所述,我们可以使用一个OR运算符。
现在,我们将通过一些示例来尝试了解一个OR运算符。
让我们重用先前定义的Student表作为示例。

方案:获取年龄在12岁以上或者性别为女性的学生所占的百分比。

查询:

SELECT StudentPercent FROM Student WHERE StudentAge>12 OR StudentGender = "F";

输出:

StudentPercent
85
88
84
78

在上面的示例中,我们使用一个OR运算符组合两个条件,StudentAge大于12,StudentGender等于" F"。

让我们尝试了解多个"或者"运算符。

2.2)SQL多重或者运算符示例

语法:

SELECT column(s) FROM table_name WHERE condition1 OR condition2 OR condition3 ... OR conditionN;

如以上用于组合两个以上条件的语法中所述,我们可以使用多个OR运算符。

现在,通过一些示例,我们将尝试了解多个OR运算符。

方案:获取年龄在12岁以上或者性别是女性或者在80岁以上的学生所占的百分比。

查询:

SELECT StudentPercent FROM Student WHERE StudentAge>12 OR StudentGender = "F" OR StudentPercent>80;

在上面的示例中,我们使用一个OR运算符来组合三个条件,StudentAge大于12,StudentGender等于" F",StudentPercent大于80。

3. SQL NOT运算符

当我们要过滤WHERE子句中不满足条件的结果集时,使用SQL NOT运算符。

让我们尝试通过一些示例来详细了解NOT运算符。

3.1)SQL NOT运算符示例

语法:

SELECT column(s) FROM table_name WHERE NOT condition;

如以上语法中所述,我们将NOT运算符与WHERE子句一起使用。
现在,我们将通过一些示例来理解NOT运算符。

方案:获得性别不是女性的学生百分比。

查询:

SELECT StudentPercent FROM Student WHERE NOT StudentGender = "F";

输出:

StudentPercent
85
78

在上面的示例中,我们使用了NOT运算符来识别学生的性别是否不是女性。

4. SQL逻辑运算符组合示例

我们试图分别理解这三个逻辑运算符。
但是,这三个运算符也可以组合使用。
让我们尝试了解不同的组合。

我们将以下提及的Employee表作为所有组合的示例用途。

EmpIdEmpNameEmpAgeEmpGenderEmpState
1Tony27MTexas
2Anjali32FCalifornia
3Jason34MLondon
4Salma33FTexas
5Anuj26MCalifornia

4.1)SQL AND OR示例

场景:获取州或者伦敦的男性雇员的姓名。
查询:

SELECT EmpName FROM Employee WHERE EmpGender = "M" AND (EmpState = "London" OR EmpState = "Texas");

输出:

EmpName
Tony
Jason

4.2)SQL AND NOT示例

场景:获取年龄在30岁以上且性别不是男性的员工的姓名。
查询:

SELECT EmpName FROM Employee WHERE EmpAge > 30 AND NOT EmpGender = "M";

输出:

EmpName
Anjali
Salma

4.3)SQL OR NOT示例

场景:获取年龄在30岁以上或者性别不是男性的员工的姓名。
查询:

SELECT EmpName FROM Employee WHERE EmpAge > 30 OR NOT EmpGender = "M";

输出:

EmpName
Anjali
Jason
Salma