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);
多表联合查询INNER JOIN
-
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;