序号 | 说明 | 操作 |
---|---|---|
1 | AND 操作符 | 给WHERE 子句附加条件 |
2 | OR 操作符 | 检索匹配任一条件的行 |
3 | 计算次序 | 优先级:() > AND > OR |
4 | IN 操作符 | 指定条件范围,功能与OR 相当 |
5 | NOT IN | 否定它之后所跟的任何条件 |
以下为数据库SQLTEST
中的三张表,其结构和内容如下:
1.AND
操作符
为了通过不止一个列进行过滤,可使用
AND
操作符给WHERE
子句附加条件。
mysql> SELECT Stu_id,Lesson_id,Score
-> FROM t_score
-> WHERE Lesson_id = 'L001' AND Score > 85;
+--------+-----------+-------+
| Stu_id | Lesson_id | Score |
+--------+-----------+-------+
| 1 | L001 | 90 |
+--------+-----------+-------+
2.OR
操作符
OR
操作符:指示MySQL检索匹配任一条件的行。
mysql> SELECT Stu_id,Lesson_id,Score
-> FROM t_score
-> WHERE Lesson_id = 'L002' OR Score > 80;
+--------+-----------+-------+
| Stu_id | Lesson_id | Score |
+--------+-----------+-------+
| 1 | L001 | 90 |
| 1 | L002 | 86 |
| 2 | L001 | 84 |
| 3 | L003 | 85 |
| 4 | L005 | 98 |
+--------+-----------+-------+
3.计算次序
优先级:
()
>AND
>OR
mysql> SELECT *
-> FROM t_stu_profile
-> WHERE (Gender='F' AND Age>16) OR (Gender='M' AND Age<16);
+--------+----------+--------+------+----------+
| Stu_id | Stu_Name | Gender | Age | Class_id |
+--------+----------+--------+------+----------+
| 5 | 王五 | F | 17 | 0614 |
+--------+----------+--------+------+----------+
4.IN
操作符
IN
操作符:用来指定条件范围,范围中的每个条件都可以进行匹配;
IN
取合法值得由逗号分隔的清单,全都括在圆括号中;
其实,IN
操作符与OR
操作符完成相同的功能。
IN
操作符的优点:
①在使用长的合法选项清单时,IN
操作符的语法更清楚且更简单;
②在使用IN
时,计算的次序更容易管理(因为使用的操作符更少);
③IN
操作符一般比OR
操作符清单执行更快;
④IN
的最大优点是可以包含其他SELECT
语句,使得能够更动态地建立WHERE
子句。
mysql> SELECT *
-> FROM t_stu_profile
-> WHERE Class_id IN ('0611','0612')
-> ORDER BY Age;
+--------+----------+--------+------+----------+
| Stu_id | Stu_Name | Gender | Age | Class_id |
+--------+----------+--------+------+----------+
| 1 | 郭东 | F | 16 | 0611 |
| 4 | 钱南 | M | 17 | 0611 |
| 2 | 李西 | M | 18 | 0612 |
+--------+----------+--------+------+----------+
5.NOT
操作符
NOT
操作符:否定它之后所跟的任何条件;
MySQL中的NOT
:MySQL支持使用NOT
对IN
、BETWEEN
和EXISTS
子句取反,这与多数其他DBMS允许使用NOT
对各种条件取反有很大的差别。
mysql> SELECT *
-> FROM t_stu_profile
-> WHERE Class_id NOT IN (0611,0612);
+--------+----------+--------+------+----------+
| Stu_id | Stu_Name | Gender | Age | Class_id |
+--------+----------+--------+------+----------+
| 3 | 张北 | F | 16 | 0613 |
| 5 | 王五 | F | 17 | 0614 |
| 6 | 赵七 | F | 16 | 0615 |
+--------+----------+--------+------+----------+