SQL AND和OR 运算符
在SQL中,AND & OR运算符用于过滤数据并根据条件获取精确结果。 SQL中 AND & OR 运算符还用于组合多个条件。 可以组合这两个运算符来测试SELECT、INSERT、UPDATE或DELETE语句中的多个条件。
在组合这些条件时,重要的是使用括号,以便数据库知道评估每个条件的顺序。
- AND和OR运算符与WHERE子句一起使用。
- 这两个运算符被称为联合运算符。
AND 运算符
此运算符仅显示条件condition 1和condition 2均计算为True的那些记录。
语法:
SELECT * FROM table_name WHERE condition1 AND condition2 and ...conditionN;
table_name: 表名字
condition1,2,..N : 第一个条件,第二个条件,以此类推
OR 运算符
此运算符显示条件condition 1和condition 2之一计算结果为True的记录。也就是说,条件1为真或条件2为真。
语法:
SELECT * FROM table_name WHERE condition1 OR condition2 OR... conditionN;
table_name : 表名字
condition1,2,..N : 第一个条件,第二个条件,以此类推
现在,我们考虑一个表数据库来演示具有多种情况的AND & OR 运算符:
如果我们想从学生表中获取所有记录,其中Age是18岁,ADDRESS是Delhi。
查询语句 :
SELECT * FROM Student WHERE Age = 18 AND ADDRESS = 'Delhi';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
再举一个例子,从Student表中获取NAME为Ram、Age为18的所有记录。
查询:
SELECT * FROM Student WHERE Age = 18 AND NAME = 'Ram';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
从Student表中获取NAME为Ram或NAME为SUJIT的所有记录
查询:
SELECT * FROM Student WHERE NAME = 'Ram' OR NAME = 'SUJIT';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
从Student表中获取NAME为Ram或Age为20的所有记录。
查询:
SELECT * FROM Student WHERE NAME = 'Ram' OR Age = 20;
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
结合AND和OR
我们可以用下面的方式组合AND和OR操作符来编写复杂的查询。
语法:
SELECT * FROM table_name WHERE condition1 AND (condition2 OR condition3);
举个例子,从Student表中获取Age为18 NAME为Ram或RAMESH的所有记录。
查询:
SELECT * FROM Student WHERE Age = 18 AND (NAME = 'Ram' OR NAME = 'RAMESH');
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |