上一篇文章中我们提到了条件查询除了一些简单的数学符号之外,还有一些用于条件判断的关键字,如逻辑判断 关键字AND,OR,NOT和范围查找关键字BETWEEN,IN等;下面我们来介绍一些这些关键字的用法以及他们所表达的含义。
目录
逻辑运算关键字
AND
OR
NOT
逻辑运算关键字
在进行条件查找时,仅有一个判断条件的情况是比较少见的,大多数情况下我们的WHERE子句需要同时判断多个条件,此时就需要用到逻辑运算的关键字来将这些条件连接起来。
-
AND
AND操作符可以用来连接多个条件,作用是:当AND连接的多个条件同时成立时,AND操作符的条件判定结果才算成立,其实就是我们所学习的“与”运算。它的具体用法如下所示:
SELECT * FROM student
WHERE name = '张三' AND age = 18;
上述SQL语句所表达的含义是:
从student表中, 找出满足条件name='张三'并且同时满足条件age='18'的所有行的所有列的数据并返回结果。
如果还有其它条件的话,还可以再后面继续叠加AND操作符。如下:
SELECT * FROM student
WHERE name = '张三' AND age = 18 AND sex = '男';
-
OR
OR操作符同样可以用来连接多个条件,作用是:当OR连接的多个条件中,有一个条件成立时,OR操作符的条件判定结果就算成立,也就是我们所学习的“或”运算。它的具体用法如下所示:
SELECT * FROM student
WHERE name = '张三' OR name = '李四';
上述SQL语句所表达的含义是:
从student表中, 找出满足条件name='张三'或者满足条件name='李四'的所有行的所有列的数据并返回结果。
如果还有其它条件的话,还可以再后面继续叠加OR操作符。如下:
SELECT * FROM student
WHERE name = '张三' OR name = '李四' OR name = '王五';
使用OR操作符有以下几点需要注意:
- 即使多个判定条件中用得到的列名是一样的,也不可以省略,否则会出错;
--正确写法-- SELECT * FROM student WHERE name = '张三' OR name = '李四' OR name = '王五'; --错误写法-- SELECT * FROM student WHERE name = '张三' OR '李四' OR '王五';
- OR操作符和AND操作符可以叠加使用,但是其中存在计算次序问题,无论操作符前后关系如何,AND操作符的计算规则都在OR之前,有括号则先计算括号内的操作符。如下所示:
--1-- SELECT * FROM student WHERE name = '张三' OR name = '李四' AND age = 18; --2-- SELECT * FROM student WHERE name = '李四' AND age = 18 OR name = '张三'; --3-- SELECT * FROM student WHERE (name = '张三' OR name = '李四') AND age = 18;
上述三条语句如下所示:
-
语句1和2所表示的含义是相同的:从student表中,找出满足条件name='张三'的记录,或者满足条件name='李四'并且同时age='18'的记录。因此这里返回的结果中name='张三'的记录,它的age不一定是18。
-
语句3所表示的含义是:从student表中,找出满足条件name='张三'或者name='李四',并且同时满足条件age='18'的记录。返回的所有结果一定都满足age='18'这个条件。
-
-
NOT
NOT关键字通常与IN、BETWEEN和EXISTS等关键字连在一起使用,用来对这些子句返回的结果取反,如下所示:
--1--
SELECT * FROM student
WHERE age IN (18,19,20);
--2--
SELECT * FROM student
WHERE age = 18 OR age = 19 OR age = 20;
--3--
SELECT * FROM student
WHERE age NOT IN (18,19,20);
--4--
SELECT * FROM student
WHERE age != 18 AND age != 19 AND age != 20;
上面四条SQL语句中:
- 1和2所表示的含义一致:表示从student表中,查找出所有age等于18,19,20的记录。
- 3和4所表示的含义一致:表示从student表中,查找出除age等于18,19,20之外的所有记录。
(有关范围查找关键字IN,BETWEEN和EXISTS的用法我们在下一篇文章中介绍)
以上就是SQL语句中,关于条件查询的逻辑运算关键字的用法和注意点。