首页 > 数据库 >MySQL多表联合查询&聚合函数应用实例

MySQL多表联合查询&聚合函数应用实例

时间:2024-04-10 17:59:43浏览次数:27  
标签:insert 多表 score 10 into 实例 values result MySQL

 DDL——学生表——成绩表

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `createDate` datetime DEFAULT NULL,
  `userName` varchar(20) DEFAULT NULL,
  `pwd` varchar(36) DEFAULT NULL,
  `phone` varchar(11) DEFAULT NULL,
  `age` tinyint(3) unsigned DEFAULT NULL,
  `sex` char(2) DEFAULT '男',
  `introduce` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 
CREATE TABLE `result` (
  `rid` int(11) NOT NULL AUTO_INCREMENT COMMENT '成绩编号',
  `testName` varchar(255) DEFAULT NULL COMMENT '测试名称',
  `score` double(4,2) DEFAULT NULL COMMENT '成绩',
  `studentId` int(11) DEFAULT NULL COMMENT '学生id',
  PRIMARY KEY (`rid`),
  KEY `studentId` (`studentId`),
  CONSTRAINT `result_ibfk_1` FOREIGN KEY (`studentId`) REFERENCES `student` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 DML

insert into student values(0,'2024-02-25 10:10:10','赵灵儿','123',
'15612345678',16,'女','逍遥哥哥,你终于找到我了。');
insert into student values(0,'2024-02-25 10:10:10','王语嫣','123',
'15612345678',17,'女','慕容复,我和你不共戴天。');
insert into student values(0,'2024-02-25 10:10:10','龙姑娘','123',
'15612345678',22,'女','我想过过过儿过过的日子。');
insert into student values(0,'2024-02-25 10:10:10','杨过','123',
'15612345678',18,'男','一遇杨过误终身。');
insert into student values(0,'2024-02-25 10:10:10','杨逍','123',
'15612345678',27,'男','杨过跟程英的大儿子。');
insert into student (userName,age,introduce)values('黄衣女子',26,'杨过与龙姑娘的大女儿。');
 
insert into result values(0,'政治',96,1);
insert into result values(0,'地理',86,5);
insert into result values(0,'政治',77,3);
insert into result values(0,'英语',99,3);
insert into result values(0,'历史',22,6);
insert into result values(0,'化学',69,2);
insert into result values(0,'Java',79,5);
insert into result values(0,'Java',67,6);
insert into result values(0,'政治',97,2);
insert into result values(0,'物理',76,6);
insert into result values(0,'物理',82,2);
insert into result values(0,'化学',56,4);

 DQL

# 分组显示时,只有被分组的列数据有效,其余无效
select testName '学科成绩',
sum(score) '科目总分数',
count(score) '科目考试人数', avg(score) '科目平均分数',
max(score) '科目最高分',
min(score) '科目最低分'# 最后一个列信息不写【,】
from result
where studentId<4 # 具体的列信息筛选使用where
group by testName;# 分组
having avg(score)>90 # 聚合数据筛选必须使用having
-------------------------------------------------------------------------------------
# 分组显示时,只有被分组的列数据有效,其余无效
select studentId '学号',userName '学生姓名', introduce '学生简介',
sum(score) '学生各科目总成绩',
count(score) '学生参与科目考试数量',
avg(score) '学生所有科目平均分数',
max(score) '学生所有科目中最高分',
min(score) '学生所有科目中最低分'# 最后一个列信息不写【,】
from result INNER JOIN student on result.studentId=student.id # 去除笛卡尔积
where sex='男' # 具体的列信息筛选使用where
group by studentId,userName,introduce # 分组
having avg(score)<60 # 聚合数据筛选必须使用having
order by avg(score) desc;# order by 一定在后方,最后方是limit
DQL中的代码运行后为两种不同的结果

标签:insert,多表,score,10,into,实例,values,result,MySQL
From: https://blog.csdn.net/Xinghaoyang666/article/details/137502388

相关文章

  • python收到MQTT消息后写入mySQL
    python收MQTT消息和写mySQL的代码在前面的文章都有介绍,这里直接上完整的功能代码mqtt2mysql.py#python3.6importloggingimportrandomimporttimeimportmysql.connector#frompaho.mqttimportclientasmqtt_clientimportpaho.mqtt.clientasmqttBROKER......
  • MySQL Ruler mysql 日常开发规范
    拓展阅读MySQLViewMySQLtruncatetable与delete清空表的区别和坑MySQLRulermysql日常开发规范MySQLdatetimetimestamp以及如何自动更新,如何实现范围查询MySQL06mysql如何实现类似oracle的mergeintoMySQL05MySQL入门教程(MySQLtutorialbook)MySQL04-E......
  • 工作流新增实例
    定义xml:org.activiti.db.mapping.entity.insertHistoricTaskInstance调用:org.activiti.engine.impl.db;类:DbSqlSession方法:protectedvoidflushRegularInsert(Entityentity,Class<?extendsEntity>clazz){StringinsertStatement=this.dbSqlSessionFactory......
  • MySQL分组查询以及having筛选
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • prometheus 监控mysql
      启动脚本vim/usr/lib/systemd/system/mysqld_exporter.service[Unit]Description=PrometheusMySQLExporterAfter=network.target[Service]Type=simpleUser=exporterGroup=exporterRestart=alwaysExecStart=/opt/mysqld_exporter-0.15.1/mysqld_exporter\--......
  • Windows环境下删除MySQL
    目录一、关闭MySQL服务1、win+R打开运行,输入services.msc回车2、服务里找到MySQL并停止二、卸载MySQL软件1、打开控制模板--卸载程序--卸载MySQL相关的所有组件三、删除MySQL在物理硬盘上的所有文件1、删除MySQL的安装目录(默认在C盘下的ProgramFiles文件夹)2、删除MySQL数据目录数......
  • 漏洞分类与实例解析:一场深入安全领域的探索之旅
    漏洞分类与实例解析:一场深入安全领域的探索之旅引言在网络安全的世界里,漏洞无处不在,犹如悬挂在信息空间之上的达摩克利斯之剑。正确识别并理解各类漏洞的特性和分类,是做好安全防护工作的基石。本文将深入探讨几种常见的漏洞类型——远程代码执行(RemoteCodeExecution,RC......
  • 如何优化在docker容器内的MySQL性能
    前言:在现代数据库应用中,性能和可靠性是至关重要的。对于运行在docker中的MySQL容器,通过优化配置可以充分利用宿主机的的性能,从而提升数据库的整体性能和响应速度。下面将介绍如何通过编辑MySQL容器中的配置文件来优化其性能,并详细说明操作步骤。正文:随着云计算和容器化......
  • 基于SpringBoot+MySQL+SSM+Vue.js的宠物商城系统(附论文)
    演示视频基于SpringBoot+MySQL+SSM+Vue.js的宠物商城系统技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的宠物商城系统(附论文),用......
  • 基于SSM+MySql+Layui的在线教育视频课程管理系统(附论文)
    演示视频基于SSM+MySql+Layui的在线教育视频课程管理系统(附论文)-源码乐园技术描述开发工具:Idea/Eclipse数据库:mysqlJar包仓库:Maven前段框架:LayUI后端框架:Spring+SpringMVC+Mybatis+MySQL文字描述基于SSM+MySql+Layui的在线教育视频课程管理系统,分为用......