基本语法形式:

SELECT 属性列表 FROM 表名和视图列表 [WHERE 条件表达式1] [GROUP BY 属性名1 [HAVING 条件表达式2(满足才输出) ]] [ORDER BY 属性名2 [ASC | DESC]]

查询所有字段:

法1. 列出所有字段
法2. 使用“*”查询所有字段,这种方式只能按照表中所有字段的顺序进行排列,不够灵活

查询指定字段:

属性列表中只列出所有字段

查询指定记录:

WHERE 条件表达式

查询条件

符号或关键字

比较

=,<,<=,>,>=,!=,<>,!>,!<

指定范围

BETWEEN AND,NOT BETWEEN AND

指定集合

[NOT] NULL

匹配字符

[NOT] LIKE

是否为空值

IS [NOT] NULL

多个查询条件

AND,OR

带IN关键字的查询

[NOT] IN (元素1,元素2,…,元素n)
字符型的需加单引号

带BETWEEN AND的范围查询

[NOT] BETWEEN 取值1 AND 取值2 BETWEEN AND:大于等于取值1,大于等于取值2
NOT BETWEEN AND:小于取值 1,大于取值2

带LIKE的字符匹配查询

[NOT] LIKE ‘字符串’
必须加单引号或双引号
可以是完整的字符串,也可以是包含%或_的通配字符
%表示任意长度的字符串,>=0
_表示单个字符

查询空值 IS [NOT] NULL
AND、OR 多条件查询,AND 优先级高于 OR
查询结果不重复

SELECT DISTINCT 属性名

对查询结果进行排序

ORDER BY 属性名 [ASC | DESC]
可对多个字段排序,用逗号分隔,最前面的优先

分组查询
GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP] 
 属性名:按照该字段的值进行分组 
 HAVING 条件表达式,限制分组后的显示 
 WITH ROLLUP 将在所有的记录后加上一条记录,是总和 
 GROUP BY 关键字可以和GROUP_CONCAT()一起使用,也常与集合函数使用(GOUNT(),SUM(),AVG(),MAX(),MIN())1).单独使用GROUP BY:只显示每个分组的一条记录 
 2).与GROUP_CONCAT()函数一起使用 
 SELECT sex,GROUP_CONCAT(NAME) FROM employee 
 将每个分组的name字段的值显示出来,GROUP BY sex; 
 3).与集合函数一起使用 
 SELECT sex,COUNT(sex) FROM employee GROHP BY sex; 
 4).GROUP BY 与HAVING 一起使用 
 SELECT sex,COUNT(sex) FROM employee GROUP BY sex HAVING COUNT(sex) >= 3; 
 5).按多个字段进行分组 
 SELECT * FROM employee GROUP BY id,sex; 
 6).WITH ROLLUP 
 GROUP BY

用LIMIT 限制查询结果的数量
1).不指定初始位置时,记录从第一条记录开始显示,显示记录的条数:LIMIT + 数量
2).指定初始位置
LIMIT 初始位置,记录数

附:

集合函数

查询

COUNT()

统计条数

SUM()

求和函数

AVG()

求平均值

MAX()

求最大值

MIN()

求最小值