一、过滤
SELECT * FROM mytable
WHERE col IS NULL
下表显示了 WHERE 子句可用的操作符
操作符 | 说明 |
= | 等于 |
< | 小于 |
> | 大于 |
<> != | 不等于 |
<= !> | 小于等于 |
>= !< | 大于等于 |
BETWEEN | 在两个值之间 |
is NULL | 为NULL值 |
注:NULL 与 0、空字符串都不同。
AND 和 OR 用于连接多个过滤条件。优先处理 AND,当一个过滤表达式涉及到多个 AND 和 OR 时,可以使用 () 来决定优先级,使得优先级关系更清晰。
IN 操作符用于匹配一组值,其后也可以接一个 SELECT 子句,从而匹配子查询得到的一组值。
NOT 操作符用于否定一个条件。
二、排序
SELECT * FROM mytable
ORDER BY col1 DESC, col2 ASC
注:
ASC:升序(默认)
DESC:降序
三、通配符
使用 Like 来进行通配符匹配,通配符也是用在过滤语句中,但它只能用于文本字段。
% 匹配 >=0 个任意字符;
_ 匹配 ==1 个任意字符;
[ ] 可以匹配集合内的字符,例如 [ab] 将匹配字符 a 或者 b。用脱字符 ^ 可以对其进行否定,也就是不匹配集合内的字符。
SELECT *
FROM mytable
WHERE col LIKE ‘[^AB]%‘ -- 不以 A 和 B 开头的任意文本
注:通配符位于开头处匹配会非常慢。
四、分组
把具有相同的数据值的行放在同一组中。
可以对同一分组数据使用汇总函数进行处理,例如求分组数据的平均值等。
指定的分组字段除了能按该字段进行分组,也会自动按该字段进行排序。
SELECT col, COUNT(*) AS num
FROM mytable
GROUP BY col
1.GROUP BY 自动按分组字段进行排序,ORDER BY 也可以按汇总字段来进行排序。
SELECT col, COUNT(*) AS num
FROM mytable
GROUP BY col
ORDER BY num
2.WHERE 过滤行,HAVING 过滤分组,行过滤应当先于分组过滤。
SELECT col, COUNT(*) AS num
FROM mytable
WHERE col > 2
GROUP BY col
HAVING num >= 2
3.分组规定:
原文:https://www.cnblogs.com/azhenghui/p/14672026.html