程序员社区

SQL教程 --- 4. SQL逻辑运算符(AND、OR、NOT)

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

1. SQL AND 运算符

当我们想要将多个条件组合为 WHERE 子句的一部分时,将使用 SQL AND 运算符。结果集将根据两个条件的满足情况进行过滤。因此,如果两个条件都为真,则只会过滤结果。为了组合多个条件,我们可以使用多个 AND 作为WHERE子句的一部分。

1.1) SQL 单 AND 运算符示例

SQL AND 运算符语法为:

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

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

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

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

RollNo StudentName StudentGender StudentAge StudentPercent
1 George M 14 85
2 Monica F 13 88
3 Jessica F 14 84
4 Tom M 13 78

场景:获取年龄超过 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 运算符。结果集将根据满足至少一个条件进行过滤。因此,如果至少有一个条件为真,则只会过滤结果。为了组合多个条件,我们可以使用多个 OR 作为 WHERE 子句的一部分。

2.1) SQL 单 OR 运算符示例

语法

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”。

让我们试着理解多个 OR 运算符。

2.2) SQL 多 OR 运算符示例

语法

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 运算符

SQL NOT 运算符用于在 WHERE 子句中不满足条件时过滤结果集。

让我们尝试通过一些示例详细了解 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 表作为所有组合的示例。

EmpId EmpName EmpAge EmpGender EmpState
1 Tony 27 M Texas
2 Anjali 32 F California
3 Jason 34 M London
4 Salma 33 F Texas
5 Anuj 26 M California

场景:获取所在州为伦敦或德克萨斯州的男性员工的姓名。
查询

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

这就是 SQL 逻辑运算符的全部内容。我希望您通过 SQL AND、OR 和 NOT 运算符的示例获得了足够好的想法。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » SQL教程 --- 4. SQL逻辑运算符(AND、OR、NOT)

一个分享Java & Python知识的社区