MySQL复习值代码知识点(2)
目录
[group by使用举例](#group by使用举例)
[group by 与order by 联合使用](#group by与order by联合使用)
[SQL运行结果查询](# SQL运行结果查询 )
总汇表
| order by | 排序 desc降序 asc升序 |
|---|---|
| group by | 分组 (一般与聚集函数连用) |
| having | 对组进行限制与聚集函数连用 |
| Limit | 分页 |
| Avg | 聚集函数:求平均值 |
| Sum | 聚集函数:求和(数值的加法) |
| Max | 聚集函数:求最大值 |
| Min | 聚集函数:求最小值 |
| count | 聚集函数:相同列值求行数的和 |
where子句作用于表和视图,HAVING 子句作用于组;
where子句中不能使用聚集函数,而having子句中可以。
有如下表:

CREATE TABLE `grade` (
`id` int(11) NOT NULL PRIMARY KEY,
`name` varchar(20),
`grades` int(11) ,
) ;
order by使用举例
按照姓名升序排列:
mysql> select * from grade
-> order by name asc;
按照姓名降序排序:
mysql> select * from grade
-> order by name desc;
group by使用举例
group通常是和别函数一起调用的。(count,sum)
求每个学生姓名的所有成绩总分:
mysql> select name,sum(grades)
-> from grade
-> group by name;
(解释:首先,要求每个学生的总分数,要把每个学生聚集到一起,然后去把聚集在一起的每个学生的成绩求和)
求每个学生一共有几个成绩:
mysql> select name,count(name)
-> from grade
-> group by name;
(解释:首先把相同name的行聚集到一起,然后用count求出每个name相同的一共有几行)
求每个学生的总成绩:
mysql> select name,sum(grades)
-> from grade
-> group by name;
求每个学生的平均成绩:
mysql> select name,avg(grades)
-> from grade
-> group by name;
求每个学生的成绩最低分:
mysql> select name,min(grades)
-> from grade
-> group by name;
limit举例
limit 参数1:显示查询结果的前‘参数1’个数据;
limit 参数1 参数2:跳过查询结果的前‘参数1’个数据,显示剩下的前‘参数2’个数据
取前三个查询结果:
mysql> select * from grade
-> limit 3;
group by 与order by 联合使用
求总成绩排名前二的学生:
mysql> select name,sum(grades) as a
-> from grade
-> group by name
-> order by a desc
-> limit 2;
having的使用
查询所有学生总成绩大于100的学生:
mysql> select name,sum(grades)
-> from grade
-> group by name
-> having sum(grades)>100;
SQL运行结果查询
数据输入
INSERT INTO `grade` VALUES (0, '1', 10);
INSERT INTO `grade` VALUES (1, '1', 10);
INSERT INTO `grade` VALUES (2, '2', 20);
INSERT INTO `grade` VALUES (3, '3', 30);
INSERT INTO `grade` VALUES (4, '4', 40);
INSERT INTO `grade` VALUES (5, '1', 100);
INSERT INTO `grade` VALUES (6, '2', 100);
运行结果查询:
按照姓名升序排列:
mysql> select * from grade
-> order by name asc;
+----+------+--------+
| id | name | grades |
+----+------+--------+
| 0 | 1 | 10 |
| 1 | 1 | 10 |
| 5 | 1 | 100 |
| 2 | 2 | 20 |
| 6 | 2 | 100 |
| 3 | 3 | 30 |
| 4 | 4 | 40 |
+----+------+--------+
按照姓名降序排序:
mysql> select * from grade
-> order by name desc;
+----+------+--------+
| id | name | grades |
+----+------+--------+
| 4 | 4 | 40 |
| 3 | 3 | 30 |
| 2 | 2 | 20 |
| 6 | 2 | 100 |
| 0 | 1 | 10 |
| 1 | 1 | 10 |
| 5 | 1 | 100 |
+----+------+--------+
求每个学生姓名的所有成绩总分:
mysql> select name,sum(grades)
-> from grade
-> group by name;
+------+-------------+
| name | sum(grades) |
+------+-------------+
| 1 | 120 |
| 2 | 120 |
| 3 | 30 |
| 4 | 40 |
+------+-------------+
求每个学生一共有几个成绩:
mysql> select name,count(name)
-> from grade
-> group by name;
+------+-------------+
| name | count(name) |
+------+-------------+
| 1 | 3 |
| 2 | 2 |
| 3 | 1 |
| 4 | 1 |
+------+-------------+
求每个学生的总成绩:
mysql> select name,sum(grades)
-> from grade
-> group by name;
+------+-------------+
| name | sum(grades) |
+------+-------------+
| 1 | 120 |
| 2 | 120 |
| 3 | 30 |
| 4 | 40 |
+------+-------------+
求每个学生的平均成绩:
mysql> select name,avg(grades)
-> from grade
-> group by name;
+------+-------------+
| name | avg(grades) |
+------+-------------+
| 1 | 40.0000 |
| 2 | 60.0000 |
| 3 | 30.0000 |
| 4 | 40.0000 |
+------+-------------+
求每个学生的成绩最低分:
mysql> select name,min(grades)
-> from grade
-> group by name;
+------+-------------+
| name | min(grades) |
+------+-------------+
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
+------+-------------+
取前三个查询结果:
mysql> select * from grade
-> limit 3;
+----+------+--------+
| id | name | grades |
+----+------+--------+
| 0 | 1 | 10 |
| 1 | 1 | 10 |
| 2 | 2 | 20 |
+----+------+--------+
求总成绩排名前二的学生:
mysql> select name,sum(grades) as a
-> from grade
-> group by name
-> order by a desc
-> limit 2;
+------+-----+
| name | a |
+------+-----+
| 1 | 120 |
| 2 | 120 |
+------+-----+
查询所有学生总成绩大于100的学生:
mysql> select name,sum(grades)
-> from grade
-> group by name
-> having sum(grades)>100;
+------+-------------+
| name | sum(grades) |
+------+-------------+
| 1 | 120 |
| 2 | 120 |
+------+-------------+
MySQL复习值代码知识点(2)的更多相关文章
- MySQL复习值代码知识点(1)
MySQL复习值代码知识点 一. 创建数据库 create database 数据库名: 二. 删除数据库 drop database 数据库名: 三. 选择相应的数据库 use 数据库名: 四. 创 ...
- mysql复习-来源考试
mysql复习- No1 .登录和权限 (一)常用命令1.登录mysqlmysql -h localhost -u root -p 2.重启mysqlservice mysql restart 延 ...
- mysql复习秘籍
mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...
- MYSQL复习笔记2-自带工具介绍
Date: 20140102Auth: Jin 一.mysql 命令行客户端1)base-h host-P port--socket=path,-S path用于连接的套接字文件替换使用IP PORT ...
- loadrunner动态从mysql取值
loadrunner动态从mysql取值 [需要下载跟数据库服务器一致的dll,32位或64位] loadrunner中有参数化从数据库中取值,但是只是静态的,对于一些要实时取值的数据就game ov ...
- MySQL NULL 值处理
MySQL NULL 值处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了 ...
- Python连接MySQL的实例代码
Python连接MySQL的实例代码 MySQLdb下载地址:http://sourceforge.net/projects/mysql-python/ 下载解压缩后放到%Python_HOME% ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- 二十一、MySQL NULL 值处理
MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. ...
随机推荐
- puppet5.1 安装与配置
一.Puppet概念 简介 当服务器数量达到一定的规模时,仅依靠人为完成批量部署服务器个资源的配置,运维工作将变得繁琐且容易出错,为了解决这一问题,我们应该怎么办呢?我们可以引入一批工具,这批工具可编 ...
- Android 自定义吐司通知
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV ...
- delete误删数据使用SCN恢复
参考51CTO博客 问题描述:使用scn号恢复误删数据 1.查询系统闪回的scn值以及当前日志的scn值,因为我这个是测试,创建的表是在在后边,所以scn值要大于下边这两个scn值,所以对我恢复数据没 ...
- 一 、爬虫的认识与http
一 .爬虫的认识与http 互联网应用架构 一般采用c/s架构,b/s架构或者m/s架构 c/s 即 client server 客户端 服务端 b/s 即 browser server 浏览器 服 ...
- HTML DOM属性
innerHTML属性 获取元素内容的最简单方法是使用innerHTML属性 innerHTML属性对于获取或替换HTML元素的内容很有用 innerHTML属性可用于获取或改变任意HTML元素,包括 ...
- ELK 安装部署小计
ELK的安装部署已经是第N次了! 其实也很简单,这里记下来,以免忘记. #elasticsearch安装部署 wget https://artifacts.elastic.co/downloads/e ...
- console 有没有小伙伴跟我一样想知道这个对象呢
晚上看了会代码,没什么简单又好分享的 -0- 突然想到console这个对象,就把它打印了出来看看吧 ; for(var key in console){ i++; ){ document.write ...
- 项目中遇到的问题:IDEA maven项目报错:程序包com.sun.image.codec.jpeg不存在
错误截图: 解决方法:在pom.xml文件中间加上以下代码: 代码: <plugin> <groupId>org.apache.maven.plugins</groupI ...
- NumPy 会自动检测并利用 GPU 吗?
PyTorch 官网 60 分钟入门教程在介绍什么是 PyTorch 时有一句话:A replacement for NumPy to use the power of GPUs PyTorch 是 ...
- Violet 6 杯省选模拟赛 蒲公英
https://www.luogu.com.cn/problem/P4168 题目 给$n$个数字,有$m$次询问,问$a_l, a_{l+1} , \dots , a_r$的众数是什么, $1\le ...