MySQL-6:查询语句

作者: Deque | 来源:发表于2019-04-03 12:14 被阅读0次

1、DQL:查询语句:

  • 1.排序查询
  • 2.聚合函数
  • 3.分组查询
  • 4.分页查询

2、约束
3、多表之间的关系
4、范式
5、数据库的备份和还原



DQL:查询语句:

  • 1.排序查询
    • 语法:order by 子句
      order by 排序字段1 排序方式1, 排序字段2,排序方式2...
    • 排序方式:
      • ASC:升序,默认的。
      • DESC:降序
-- 在student表中按照数学成绩(math)升序排名
SELECT * FROM student ORDER BY math;
SELECT * FROM student ORDER BY math ASC;
升序查询结果
-- 在student表中按照数学成绩(math)降序排名
SELECT * FROM student ORDER BY math DESC;
降序查询结果
-- 在student表中按照数据成绩排名,如果数学(math)成绩一样,则按照英语(english)成绩排名
SELECT * FROM student ORDER BY math ASC, english ASC;

查询结果
  • 注意:
    如果有多个排序条件,则当前边的田间值一样时,才会判断第二条件。

  • 2.聚合函数:将一列数据作为一个整体,进行纵向的计算
    1. count:计算个数
    • 一般选择非空的列:主键
    • count(*)
SELECT COUNT(NAME) FROM student;

SELECT COUNT(english) FROM student;

SELECT COUNT(IFNULL(english,0)english) FROM student;
  1. max:计算最大值
SELECT MAX(math) FROM student;
  1. min:计算最小值
SELECT MIN(math) FROM student;
  1. sum:求和
SELECT SUM(math) FROM student;
  1. avg:计算平均值
SELECT AVG(math) FROM student;

注意:聚合函数的计算,会排除null值。
解决方法:
1、选择不包含非空的列计算
2、IFNULL函数


  • 3.分组查询
    1. 语法:group by 分组字段;
-- 按照性别分组,分别查询男、女同学的数学平均分
SELECT gender,AVG(math) FROM student GROUP BY gender;
查询结果
-- 按照性别分组,分别查询男、女同学的数学平均分,分别的人数
SELECT gender,AVG(math),COUNT(id) FROM student GROUP BY gender;
查询结果
-- 按照性别分组,分别查询男、女同学的数学平均分,分别的人数(要求:分数低于70分的人,不参与分组)
SELECT gender,AVG(math),COUNT(id) FROM student WHERE math >70 GROUP BY gender;
查询结果
-- 按照性别分组,分别查询男、女同学的数学平均分,分别的人数(要求:分数低于70分的人,不参与分组) 分组之后,人数要大于2个人
SELECT gender,AVG(math),COUNT(id) FROM student WHERE math >70 GROUP BY gender HAVING COUNT(id) >2;

-- 一般在聚合函数后面取一个别名方便查询
SELECT gender,AVG(math),COUNT(id) pnum FROM student WHERE math >70 GROUP BY gender HAVING pnum > 2;

查询结果
  1. 注意:
    • 分组之后查询的字段:分组字段、集合函数
    • where 和 having 的区别(面试常考)?
      1.where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。
      1. where 后不可以跟聚合函数,having可以进行集合函数的判断。

  • 4.分页查询
    1.语法:limit 开始的索引,每页查询的条数;
    2.公式:开始的索引 = (当前的页面 - 1)* 每条显示的条数
-- 分页查询
-- 每页显示3条记录
SELECT * FROM student LIMIT 0,3; -- 第一页
SELECT * FROM student LIMIT 3,3; -- 第二页

-- 公式:开始的索引 = (当前的页面 - 1)* 每条显示的条数
SELECT * FROM student LIMIT i+n,n 

SELECT * FROM student LIMIT 6,3;

3.分页操作的,limit是一个“方言”,只能在MySQL使用。

下一章节#

相关文章

  • MySQL-6:查询语句

    1、DQL:查询语句: 1.排序查询 2.聚合函数 3.分组查询 4.分页查询 2、约束3、多表之间的关系4、范式...

  • 复习数据库MySQL语句(一)

    创建表语句 插入语句 多值插入语句 查询语句 查询条件语句 查询包含语句 范围查询语句 过滤查询 更新语句/修改语...

  • mysql第五天-子查询、分页查询、联合查询

    子查询 子查询介绍 含义:出现在其他语句(增删改查语句)中的select语句,称为子查询或内查询,外部的查询语句,...

  • 5. DQL语句和查询相关语句以及多表查询

    DQL语句和查询相关语句以及多表查询 一. DQL语句 数据查询语句DQL(Data Query Language...

  • MYSQL-子查询

    子查询是一个查询语句嵌套在另一个查询语句中。内层查询语句的结果,可以为外层查询语句提供查询条件。 子查询关键字:i...

  • SQL第3/n篇(持续更新中)子查询很重要

    进阶7 子查询 含义:子查询(内查询):出现在其他语句中的select语句主查询(外查询):外部的查询语句分类...

  • Java自学-JDBC 查询

    在JDBC中使用ResultSet查询SQL语句 执行查询SQL语句 步骤 1 : 查询语句 executeQue...

  • 子查询

    出现在select语句中的select语句,称为子查询或内查询 外部的select查询语句,称为主查询或外查询 子...

  • sql笔记 P87-101

    子查询 /* 含义:出现在其他语句中的select语句,称为子查询或内查询 外部的查询语句,称为主查询或外查询 分...

  • 子查询

    进阶7:子查询 /*含义:出现在其他语句中的select语句,称为子查询或内查询外部的查询语句,称为主查询或外查询...

网友评论

    本文标题:MySQL-6:查询语句

    本文链接:https://www.haomeiwen.com/subject/upbabqtx.html