单表查询的语法结构

  • 单表查询的语法结构

select  #查询动作
from 表  #要查询的表
where 	#筛选、类似grep
group by #分组 将要查询的字段进行分组
having  #条件过滤此语法只能在group bay 后面出现
order by #将查找出来的条件进行排序,默认从小到大,DESC从大到小
limit #输入想要查询的数据量

示例 select + from 语句

---查询city表中有哪些数据
USE world;
SELECT * FROM city;

示例 select + from +where语句

---查询city表中国家是中国的有哪些数据
SELECT * FROM city WHERE countrycode="CHN"

示例select + from + where + group by + 聚合函数

  • 聚合函数
    count() : 统计个数
    sum() : 求和
    avg() :平均值
    max() :最大值
    min() :最小值
    group_concat():列转行:把查询字段的值打印在一行,逗号分隔(默认)

  • 示例select + from + where + group by + 聚合函数

-- 1. 需求 :1000人在一个广场上,要求快速统计每个省的学生数量
-- 2. 使用group by 将人数进行分分组
-- 3. 按照group by分的组进行排序+去重复
-- 4. 统计每个组的人数
-- 5. 将统计的结果输出
  • 例子1 : 统计city表,每个国家的城市个数
SELECT countrycode,COUNT(*)  #显示国家字段及每个国家的个数
FROM city  #查询表
GROUP BY countrycode; #已国家这个字段进行分组
  • 例子2 : 统计city表,中国 每个省的 城市个数
SELECT district,COUNT(*)  
FROM city 
WHERE countrycode='CHN'
GROUP BY district;
  • 例子3 : 统计city表,每个国家的总人口数 sum() :求和
SELECT countrycode,SUM(population)  
FROM city 
GROUP BY countrycode;
  • 例子4 : 统计city表,中国 每个省的总人口数
SELECT district,SUM(population) 
FROM city 
WHERE countrycode='CHN'
GROUP BY district;
  • 例子5 : 统计city表,中国 每个省的 城市个数 ,所有城市名group_concat():列转行:把查询字段的值打印在一行,逗号分隔(默认)
SELECT district,COUNT(*) ,GROUP_CONCAT(NAME) #显示省、省的城市个数、具体城市名
FROM city 
WHERE countrycode='CHN'
GROUP BY district;

示例select + from + where + group by + 聚合函数 + having 应用

  • 例子: 统计city表,中国 每个省的总人口数,显示总人口数超过500w的信息
SELECT district,SUM(population) 
FROM city 
WHERE countrycode='CHN' 
GROUP BY district
having  SUM(population)>5000000;

select + from + where + group by + 聚合函数 + having +order by

  • 例子: 统计city表,中国 每个省的总人口数,显示总人口数超过500w的信息,并按照总人口排序输出。
SELECT district,SUM(population) 
FROM city 
WHERE countrycode='CHN'  #条件国家等于chn的
GROUP BY district 	#省份分组
HAVING  SUM(population)>5000000  #sum求和 总人数大于500w
order by SUM(population); #order bay 将数据进行排序,默认从小到大

SELECT district,SUM(population) 
FROM city 
WHERE countrycode='CHN' 
GROUP BY district
HAVING  SUM(population)>5000000
ORDER BY SUM(population) desc ;#order bay 将数据进行排序,从大到小

示例select + from + where + group by + 聚合函数 + having +order by + limit

  • 例子: 统计city表,中国 每个省的总人口数,显示总人口数超过500w的信息,并按照总人口从大倒小排序输出
    — 只显示前5名。
SELECT district,SUM(population) 
FROM city 
WHERE countrycode='CHN' 
GROUP BY district
HAVING  SUM(population)>5000000
ORDER BY SUM(population) desc
limit 5 offset 0 ;  #只显示5个数据 offset为0

-- 只显示6-10名。
SELECT district,SUM(population) 
FROM city 
WHERE countrycode='CHN' 
GROUP BY district
HAVING  SUM(population)>5000000
ORDER BY SUM(population) DESC
LIMIT 5,5;  #只显示5个数据 offset为5 offset可以用逗号表示

SELECT district,SUM(population) 
FROM city 
WHERE countrycode='CHN' 
GROUP BY district
HAVING  SUM(population)>5000000
ORDER BY SUM(population) DESC
LIMIT 5 offset 5; #只显示5个数据 offset为5

原文地址:http://www.cnblogs.com/root6/p/16864962.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性