首页 > 其他分享 >多表的联合查询以及分组排序与HAVING筛选

多表的联合查询以及分组排序与HAVING筛选

时间:2024-04-04 22:33:18浏览次数:10  
标签:insert 多表 10 into 分组 result student values HAVING

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)、更新(UPDATE)、删除(DELETE)数据库】
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 studentId '学号',userName '学生名称',
sum(score) '学生各科目总分',
count(score) '考试科目数量',
avg(score) '各科目平均分'
from result inner join student on result.studentId=student.id
#重新使用学号进行分组
GROUP BY studentId,userName
HAVING avg(score)>60
ORDER BY avg(score) desc;
 
select * from result inner join student on result.studentId=student.id;
select * from result left join student on result.studentId=student.id;
select * from result right join student on result.studentId=student.id;

标签:insert,多表,10,into,分组,result,student,values,HAVING
From: https://blog.csdn.net/2301_81336881/article/details/137276993

相关文章

  • 【数据处理包Pandas】分组及相关操作
    目录一、初步认识分组并查看分组信息(一)通过聚合函数查看分组信息(二)转换成列表查看所有组的信息(三)通过循环查看各组的名称和组中的数据信息(四)通过get_group()方法直接获得一组数据二、分组再认识三、分组的执行过程(一)split阶段:创建分组的常见形式(二)应用阶段:对数据进行必......
  • MySQL分组查询实例
    数据表创建DDL——学生表——成绩表CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTN......
  • MySQL UPDATE JOIN 根据一张表或多表来更新另一张表的数据
    当使用MySQL时,经常需要根据一张表或多张表的数据来更新另一张表的数据。这种情况下,我们可以使用UPDATE语句结合JOIN操作来实现这一需求。本文将介绍MySQL中使用UPDATEJOIN的技术。什么是UPDATEJOINUPDATEJOIN是MySQL中一种结合UPDATE语句和JOIN操作的技术,用于根据一张表或多......
  • 18、MySQL多表连查详解
    MySQL的多表连查(即多表连接查询)对于数据库管理员、开发人员以及数据分析师来说都是非常重要的。对此,笔者专门写一文进行详细讲解,以便个人学习:首先建立两张表用于数据验证: 1、笛卡尔积:笛卡儿积(Cartesianproduct)是指在两个集合A和B之间的所有可能的有序对的集合。具体来说,如果......
  • mysql-多表连接的学习
    --4.3--****************************************************************************************1.多表连接1.1为了避免笛卡尔积,可以在where中加入有效的连接条件SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.col......
  • MySql分组查询 group by
    DDL 学生表 成绩表CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`ag......
  • MYSQL——多表连结查询
    分类:内联结(INNERJOIN)外联结——左外连结(LEFTJOIN)——右外联结(RIGHTJOIN)——完整联结(FILLJOIN)交叉联结(CROSSJOIN)1、DDL语句——学生表——成绩表CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAU......
  • MYSQL-多表联结查询
    1、DDLCREATETABLE`result`(`rid`int(11)NOTNULLAUTO_INCREMENTCOMMENT'成绩编号',`testName`varchar(255)DEFAULTNULLCOMMENT'测试名称',`score`double(4,2)DEFAULTNULLCOMMENT'成绩',`studentId`int(11)DEFAULTNULL......
  • MySQL分组查询实例
    DDL——学生表——成绩表CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`ag......
  • MySQL分组查询实例
    DDL——学生表——成绩表CREATETABLE`result`(`rid`int(11)NOTNULLAUTO_INCREMENTCOMMENT'成绩编号',`testName`varchar(255)DEFAULTNULLCOMMENT'测试名称',`score`double(4,2)DEFAULTNULLCOMMENT'成绩',`studentId`int(11)DEFAU......