SQL 提供了有助于根据某些条件过滤结果集的逻辑运算符。我们将讨论的 SQL 逻辑运算符是AND
,OR
和NOT
。这三个是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 运算符的示例获得了足够好的想法。