mysql基础学习笔记-2

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)