1、过滤数据
1.1 使用WHERE子句
- 只检索所需数据需要指定搜索条件(
search criteria
),搜索条件也称为过滤条件(filter condition
)。
- 在
SELECT
语句中,数据根据 WHERE
子句中指定的搜索条件进行过滤。
WHERE
子句在表名(FROM
子句)之后给出。

1.2 WHERE子句操作符

1.3 不匹配检查


1.4 空值检查
- 在创建表时,表设计人员可以指定其中的列是否可以不包含值。
- 在一个列不包含值时,称其为包含空值
NULL
。
NULL
无值(no value
),它与字段包含0、空字符串或仅仅包含空格不同。
- 特殊的
WHERE
子句:IS NULL
子句,用来检查具有NULL
值得列

2、数据过滤
2.1 AND操作符
AND
用在 WHERE
子句中的关键字,用来指示检索满足所有给定条件的行。

2.2 OR 操作符
OR
操作符:指示 MySQL
检索匹配任一条件的行

2.3 计算次序
WHERE
可包含任意数目的 AND
和 OR
操作符。允许两者结合以进行复杂和高级的过滤。
SQL
(像多数语言一样)在处理OR
操作符前,优先处理AND
操作符。
- 可使用圆括号明确地分组相应的操作符【因为圆括号具有较
AND
或 OR
操作符高的计算次序,DBMS首先过滤圆括号内的OR条件】

2.4 IN操作符
- 为什么要使用
IN
操作符?其优点具体如下。
- 在使用长的合法选项清单时,
IN
操作符的语法更清楚且更直观。
- 在使用
IN
时,计算的次序更容易管理(因为使用的操作符更少)。
- IN操作符一般比
OR
操作符清单执行更快。
-
IN
的最大优点是可以包含其他 SELECT
语句,使得能够更动态地建立WHERE
子句。

2.5 NOT 操作符
WHERE
子句中的 NOT
操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
MySQL
支持使用 NOT
对 IN
、BETWEEN
和 EXISTS
子句取反

3、用通配符进行过滤
3.1 LIKE操作符
- 通配符(
wildcard
) 用来匹配值的一部分的特殊字符。
- 搜索模式(
search pattern
)由字面值、通配符或两者组合构成的搜索条件。
LIKE
指示 MySQL
,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。
3.2 百分号(%)通配符
- 在搜索串中,
%
表示任何字符出现任意次数。
%
不可匹配NULL
值
- 尾空格可能会干扰通配符匹配。
- 例如,在保存词
anvil
时,如果它后面有一个或多个空格,则子句WHERE
prod_name LIKE '%anvil'
将不会匹配它们,因为在最后的l后有多余的字符。
jet%
:检索任意以 jet
起头的词。
- 【
%
告诉 MySQL
接受 jet
之后的任意字符,不管它有多少字符。】
&anvil%
:表示匹配任何位置包含文本 anvil
的值,而不论它之前或之后出现什么字符。

3.3 下划线(_)通配符

对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。