单表
1. 简单数据纪录查询
(1) SELECT 字段1,字段2...字段n FROM table_name; //字段可为全部或部分,根据字段顺序自动调整显示顺序
SELECT * FROM table_name; //查询所有
(2) 避免重复数据查询 DISTINCT
SELECT DISTINCT 字段1,字段2... FROM table_name;
(3)实现数学四则运算数据查询
MYSQL支持+、-、/、*、% (以*10为例)
SELECT 字段1*10,字段2.. FROM table_name; //在字段上直接加上四则运算,但显示时字段处也显示四则运算符号
修改显示的字段名: select 字段1*10 替换的字段,字段2... FROM table_name;
或 select 字段1*10 AS 替换的字段,字段2... FROM table_name;
(4)设置显示格式数据查询
SELECT CONCAT ( 字段1, ‘可能要显示的字符串’ , 字段2) 替换字段名 FROM table_name;
2. 条件数据纪录查询
SELECT 字段... FROM table_name WHERE condition
(1) 关系符、逻辑运算符
>、<、=、!=或<>、>=、<=
AND或&&、OR或||、XOR(异或)、NOT或!
(2)BETWEEN AND
... WHERE 某字段 BETWEEN value1 AND value2;
... WHERE 某字段 NOT BETWEEN value1 AND value2;
(3)IS NULL
... WHERE 字段 IS NULL;
... WHERE 字段 IS NOT NULL; 或 ...WHERE NOT 字段 IS NULL;
(4)IN
判断字段的数值是否在指定集合中
.... WHERE 字段 IN (value1,value2....); // value若为NULL,不影响查询
.... WHERE 字段 NOT IN (value1,value2....); //value若为NULL,查不到任何结果
(5)LIKE模糊查询
mysql不区分大小写
NOT 字段名 LIKE 与 字段名 NOT LIKE作用一样
%a%:含有字母a %%:所有纪录
①%
SELECT 字段.. FROM table_name WHERE 字段 LIKE ‘a%’; 查询字段中以a开头的纪录
SELECT 字段.. FROM table_name WHERE NOT 字段 LIKE ‘a%’; 查询字段中不是以a开头的纪录
②_
SELECT 字段.. FROM table_name WHERE 字段 LIKE ‘_a%’; 查询字段中 第二个字母为a的纪录
......NOT
3. 排序数据纪录查询
SELECT 字段1,...
FROM table_name
WHERE condition
ORDER BY 字段1 ASC | DESC , 字段2 ASC | DESC; //默认ASC升序
先按字段1升序或者降序排列,有相同的再按字段2升序或者降序排列
4. 限制数据纪查询数量
SELECT 字段...
FROM table_name
WHERE condition
LIMIT offset_start , row_count; //offset_start为起始偏移量,默认值为0,表示起始位置 row_count为显示的行数
//可在LIMIT前加排序 ORDER BY... LIMIT...
5. 统计函数和分组数据纪录查询
(1)MYSQL支持的统计函数
SELECT function 显示的标题
FROM table_name WHERE condition;
①统计数目 无记录返回0
COUNT(*):统计表中纪录,包含NULL
COUNT(字段):针对指定纪录统计,此字段含NULL的省略,不忽略0
②统计计算平均值 无记录返回NULL
AVG(字段):对指定字段计算平均值,忽略NULL,不忽略0
③统计计算求和 无记录返回NULL
SUM(字段):求和,忽略NULL
④统计计算最大值和最小值 无记录返回NULL
MAX(字段):忽略NULL
MIN(字段):忽略NULL
(2)分组数据查询---简单分组查询
SELECT * FROM table_name GROUP BY 某字段; //按某字段分组,并随机显示每组中的一条数据
(3)统计+分组查询
SELECT GROUP_CONCAT(要显示值的字段) 显示字段名的标题 , function 显示字段名的标题 //function可以省略
FROM table_name
WHERE condition
GROUP BY 分组字段1,分组字段2...;
GROUP_CONCAT:显示分组后指定字段的所有值
(4)分组查询---HAVING子句限定
对分组限制用HAVING,对纪录限制用WHERE
SELECT function 显示的标题
FROM table_name
WHERE condition
GROUP BY 字段1,字段2..
HAVING condition;