美文网首页
MySQL-SQL基本查询

MySQL-SQL基本查询

作者: 遇明不散 | 来源:发表于2019-05-28 15:22 被阅读0次

SQL查询

执行顺序
  • where ...
  • group by ...
  • select ... 聚合函数 from ...
  • having ...
  • order by ...
  • limit ...
// 以下均已此表为示例 sanguo
/*
+------+-----------+--------+--------+------+---------+
| id   | name      | gongji | fangyu | sex  | country |
+------+-----------+--------+--------+------+---------+
|    1 | 诸葛亮    |    120 |     20 | 男   | 蜀国    |
|    2 | 司马懿    |    119 |     25 | 男   | 魏国    |
|    3 | 关羽      |    188 |     60 | 男   | 蜀国    |
|    4 | 赵云      |    200 |     55 | 男   | 魏国    |
|    5 | 孙权      |    110 |     20 | 男   | 吴国    |
|    6 | 貂蝉      |    666 |     10 | 女   | 魏国    |
|    7 | NULL      |   1000 |     99 | 男   | 蜀国    |
|    8 |           |   1005 |     88 | 女   | 蜀国    |
+------+-----------+--------+--------+------+---------+
*/
order by
  • 给查询结果进行排序
  • ... order by 字段名 ASC/DESC
  • ASC:升序;DESC:降序
# 将英雄按防御值从高到低排序
select * from sanguo order by fangyu desc;
# 将蜀国英雄按攻击值从高到低排序
select * from sanguo where country = "蜀国" order by gongji desc;
# 将魏蜀两国英雄中名字为三个字的按防御值升序排列
select * from sanguo where 
country in("魏国","蜀国") and 
name like "___" order by fangyu asc;
limit
  • 显示查询记录的条数
  • 永远放在SQL语句的最后面
  • limit n 显示n条记录
  • limit m,n m从0开始计数,表示从第m+1条记录开始显示,n代表显示几条
  • 分页, 每页显示n条记录,显示第m页:limit (m-1)*n,n
# 在蜀国英雄中,查找防御值倒数第二名至倒数第四名的英雄的记录
select * from sanguo where country = "蜀国" order by fangyu asc limit 1,3;
# 在蜀国英雄中,查找攻击值前3名且名字不为 NULL 的英雄的姓名、攻击值和国家
select * from sanguo where country = "蜀国" and 
name is not null order by gongji desc limit 3;
group by
  • 给查询的结果进行分组
  • group by之后的字段必须要为select之后的字段
  • 如果select之后的字段和group by之后的字段不一致,则必须要对select之后的该字段做聚合处理
# 查询表中一共有几个国家
select country from sanguo group by country;
# 计算每个国家的平均攻击力
select country,avg(gongji) from sanguo group by country;
# 查找所有国家中英雄数量最多的前2名的国家名称和英雄数量
# 先分组,再聚,再排序
select country,count(id) as number from sanguo 
group by country order by number desc limit 2;
having
  • 对查询的结果进行j进一步筛选
  • having语句通常与group by语句联合使用,用来过滤由group by语句返回的记录集
  • having语句的存在弥补了where关键字不能与聚合函数联合使用的不足,having操作的是聚合函数生成的显示列
  • where只能操作表中实际存在的字段,having可以操作聚合函数生成的显示列
# 找出平均攻击力>105的国家的前2名,显示国家名和平均攻击力
select country,avg(gongji) as avggj from sanguo 
group by country having avggj > 105 order by avggj desc limit 2;
distinct
  • 不显示字段的重复值
  • distinct处理的是distinctfrom之间的所有字段,所有字段值必须全部相同才能去重
  • distinct不能对任何字段做聚合处理
# 表中都有哪些国家
select distinct country from sanguo;
# 计算蜀国一共有多少个英雄
select count(distinct id) from sanguo where country = "蜀国";
查询表记录时做数学运算
# 查询时所有英雄攻击力翻倍
select id,name,gongji*2 from sanguo;

聚合函数

  • avg(字段名): 求该字段平均值
  • sum(字段名): 求和
  • max(字段名): 最大值
  • min(字段名): 最小值
  • count(字段名): 统计该字段记录的个数
# 攻击力最强值是多少
select max(gongji) from sanguo;
# 统计id,name 两个字段分别有几条记录
select count(id),count(name) from sanguo;
# 计算蜀国英雄的总攻击力
select sum(gongji) from sanguo where country = "蜀国";
# 统计蜀国英雄中攻击值大于200的英雄的数量
select count(*) from sanguo where country = "蜀国" and gongji > 200;

相关文章

  • MySQL-SQL基本查询

    SQL查询 执行顺序 where ... group by ... select ... 聚合函数 from .....

  • spring date mongo mongotemplate使

    Spring数据MongoDB三:基本文档查询(查询,基本查询)(一) MongoDB高级查询[聚合] sprin...

  • SQL查询_基本查询

    SQL查询_基本查询 select 用于指定查询所获得的结果列,from 指定查询的数据源,数据源可以是一个表,也...

  • MySQL-SQL基础应用+Infomation_Schema介

    MySQL-SQL基础应用+Infomation_Schema介绍-Day3 1、SQL 介绍 2、SQL 作用 ...

  • OCP课程基础总结一

    基本命令 基本的select查询语句 基本函数查询语句 条件查询语句 使用联接显示多个表中的数据 使用子查询来解决...

  • elasticsearch基本查询笔记(一) -- 基本查询

    Search APIs简介 REST request URI 轻便快速的URI查询方法 REST request ...

  • SQL之DQL

    DQL用于从数据库查询数据,并不会修改数据 基本查询 条件控制 查询排序 分组查询 limit限制 一.基本查询 ...

  • SQL高级查询(二)

    T2 基本查询应用 1.基本查询语句 2.聚合函数 3.分组查询(重点) 4.联接查询(难点) ---------...

  • mongodb find aggregate管道 常用查询

    find查询(此例基本包含了mongodb find查询所有的常用操作): aggregate管道查询(此例基本包...

  • es header 简单使用

    1、可以在基本查询里查看查询语句 2、自己查询根据之前的格式自己调整后查询 基本语句1、清空索引里数据

网友评论

      本文标题:MySQL-SQL基本查询

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