您的位置:首页 > 数据库 > MySQL

mysql基础学习笔记-2

2016-01-06 21:19 806 查看
6.排序数据记录查询(通过ORDER BY)

按单字段排序查询
按多字段排序查询

SELECT field1,field2,...fieldn
FROM table_name
WHERE CONDITION
ORDER BY field [ASC|DESC][,field2 ASC|DESC];

#sal字段进行升序查询
SELECT * FROM t_employee ORDER BY sal ASC;

#mgr字段进行降序排序查询
SELECT * FROM t_employee ORDER BY mgr DESC;

#按多字段排序查询
SELECT * FROM t_employee ORDER BY sal ASC, Hiredate DESC;

7.限制数据记录查询数量
MySQL提供LIMIT来限制查询的数量;

SELECT field1,field2,....fieldn
FROM table_name
WHERE CONDITION
LIMIT OFFSET_START,ROW_COUNT;

OFFSET_START参数表示数据记录的起始偏移量
ROW_COUNT参数表示显示的行数

7.1.不指定初始位置:

#显示记录数小于查询结果
SELECT * FROM t_employee WHERE comm IS NULL LIMIT 2;

#显示记录数大于查询结果
SELECT * FROM t_employee WHERE comm is NULL LIMIT 11;

7.2.指定初始位置:
LIMIT关键字经常被用于在分页系统中,对于第一页数据记录,可以不指定初始位置来实现,
但是对于第二页的位置等基他页面必须指定初位置(OFFSET_START),否则将无法实现分页功能。

#第一页是包含第1行到第5行
SELECT * FROM t_employee LIMIT 0,5;

#从第6行开始计数5行
SELECT * FROM t_employee LIMIT 5,5;

8.统计函数和分组数据记录查询

COUNT()函数: 该函数实现统计表中的记录的条数
AVG()函数: 该函数实现计算字段值的平均值
SUM()函数: 该函数实现计算字段值的总和
MAX()函数: 该函数实现查询字段值的最大值
MIN()函数: 该函数实现查询字段值的最小值

8.1.分组数据查询

SELECT function()
FROM table_name
WHERE CONDITION
GROUP BY field,[...,feildn];

#对所有的记录分组查询
SELECT * FROM t_employee GROUP BY deptno;

SELECT * FROM t_employee GROUP BY empno;

8.2.分组查询-----实现统计功能分组查询

如果想显示每个分组中的字段,可以通过GROUP_CONCAT()来实现,该函数可以显示每个分组
中指定的字段值

SELECT GROUP_CONCAT(feild)
FROM table_name
WHERE CONDITION
GROUP BY field;

SELECT deptno,GROUP_CONCAT(ename) FROM t_employee GROUP BY deptno;

SELECT deptno,GROUP_CONCAT(ename),COUNT(ename) FROM t_employee GROUP BY deptno;

8.3.分组查询-----实现多个字段分组查询

SELECT GROUP_CONCAT(field),function(feild)
FROM table_name
WHERE CONDITION
GROUP BY feild1,field2,field3,...filedn;

SELECT deptno,Hiredate FROM t_employee GROUP BY deptno,hiredate;

SELECT deptno,hiredate,GROUP_CONCAT(ename),
COUNT(ename)
FROM t_employee
GROUP BY deptno,hiredate;

8.4.分组查询-----实现HAVING子句限定分组查询

SELECT function(feild)
FROM table_name
WHERE CONDITION
GROUP BY field1,field2,...fieldn
HAVING CONDITION;

SELECT deptno,AVG(sal) average FROM t_employee GROUP BY deptno;

SELECT deptno,AVG(sal) average,GROUP_CONCAT(ename) enames,COUNT(ename) number
FROM t_employee
GROUP BY deptno
HAVING AVG(sal)>2000;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql select 数据