查
基本语法形式:
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() | 求最小值 |