我的orm
1、分组排序
return_data = sorted(return_data, key=lambda x: (x['source'], x["order_num"]), reverse=False) # 排序
sql练习

/* Navicat Premium Data Transfer Source Server : 127.0.0.1——ygwork2021%!.(本机) Source Server Type : MySQL Source Server Version : 50734 Source Host : localhost:3306 Source Schema : world Target Server Type : MySQL Target Server Version : 50734 File Encoding : 65001 Date: 19/03/2024 13:27:05 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for class -- ---------------------------- DROP TABLE IF EXISTS `class`; CREATE TABLE `class` ( `cid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `caption` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of class -- ---------------------------- INSERT INTO `class` VALUES ('1', '三年二班'); INSERT INTO `class` VALUES ('2', '一年三班'); INSERT INTO `class` VALUES ('3', '三年一班'); -- ---------------------------- -- Table structure for course -- ---------------------------- DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `cname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `teacher_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of course -- ---------------------------- INSERT INTO `course` VALUES ('1', '生物', '1'); INSERT INTO `course` VALUES ('2', '体育', '1'); INSERT INTO `course` VALUES ('3', '物理', '2'); -- ---------------------------- -- Table structure for score -- ---------------------------- DROP TABLE IF EXISTS `score`; CREATE TABLE `score` ( `sid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `student_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `course_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of score -- ---------------------------- INSERT INTO `score` VALUES ('1', '1', '1', '60'); INSERT INTO `score` VALUES ('2', '1', '2', '59'); INSERT INTO `score` VALUES ('3', '2', '2', '100'); -- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `sid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `sname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `gender` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `class_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES ('1', '钢蛋', '女', '1'); INSERT INTO `student` VALUES ('2', '铁锤', '女', '1'); INSERT INTO `student` VALUES ('3', '山炮', '男', '2'); -- ---------------------------- -- Table structure for teacher -- ---------------------------- DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher` ( `tid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, `tname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of teacher -- ---------------------------- INSERT INTO `teacher` VALUES ('1', '波多'); INSERT INTO `teacher` VALUES ('2', '长空'); INSERT INTO `teacher` VALUES ('3', '放倒'); SET FOREIGN_KEY_CHECKS = 1;
-- 查询姓“李”的老师的个数。 SELECT COUNT(*) FROM sql_practice.teacher WHERE tname like '李%'; -- 查询姓“张”的学生名单。 SELECT COUNT(*) FROM sql_practice.student WHERE sname like '张%'; -- 查询男生、女生的人数。 SELECT gender,COUNT(*) AS count FROM sql_practice.student where gender IN ("男","女") GROUP BY gender; -- 查询同名同姓学生名单,并统计同名人数。 SELECT sname,COUNT(*) AS count FROM sql_practice.student GROUP BY sname HAVING COUNT(*)>1; -- 查询 “三年二班” 的所有学生。 SELECT s.sid, s.sname, s.gender FROM student s JOIN class c ON s.class_id = c.cid WHERE c.caption = '三年二班'; -- 查询 每个 班级的 班级名称、班级人数。 SELECT c.caption, COUNT(s.sid) AS class_count FROM class c JOIN student s ON s.class_id = c.cid GROUP BY s.sid; -- 查询成绩小于60分的同学的学号、姓名、成绩、课程名称。 SELECT student.sid, student.sname,score.num,course.cname FROM score JOIN student on score.student_id=student.sid JOIN course ON score.course_id=course.cid WHERE score.num < 60; -- 查询选修了 “生物课” 的所有学生ID、学生姓名、成绩。 SELECT student.sid, student.sname, score.num FROM score JOIN student ON score.student_id=student.sid JOIN course ON course.cid=score.course_id WHERE course.cname='生物课'; -- 查询选修了 “生物课” 且分数低于60的的所有学生ID、学生姓名、成绩。 SELECT student.sid, student.sname, score.num FROM score JOIN student ON score.student_id=student.sid JOIN course ON course.cid=score.course_id WHERE course.cname='生物课' AND score.num<60; -- 查询所有同学的学号、姓名、选课数、总成绩。 SELECT s.sid AS 学号, s.sname AS 姓名, COUNT(sc.course_id) AS 选课数, SUM(sc.num) AS 总成绩 FROM student s LEFT JOIN score sc ON s.sid = sc.student_id GROUP BY s.sid, s.sname; -- 查询各科被选修的学生数。 SELECT c.cid, c.cname, COUNT(s.course_id) AS 学生数 FROM course c LEFT JOIN score s ON s.course_id=c.cid GROUP BY c.cid; 查询各科成绩的总分、最高分、最低分,显示:课程ID、课程名称、总分、最高分、最低分。 查询各科成绩的平均分,显示:课程ID、课程名称、平均分。 查询各科成绩的平均分,显示:课程ID、课程名称、平均分(按平均分从大到小排序)。 查询各科成绩的平均分和及格率,显示:课程ID、课程名称、平均分、及格率。 查询平均成绩大于60的所有学生的学号、平均成绩;。 查询平均成绩大于85的所有学生的学号、平均成绩、姓名。 查询 “三年二班” 每个学生的 学号、姓名、总成绩、平均成绩。 查询各个班级的班级名称、总成绩、平均成绩、及格率(按平均成绩从大到小排序)。 查询学过 “波多” 老师课的同学的学号、姓名。 查询没学过 “波多” 老师课的同学的学号、姓名。 查询选修 “苍空” 老师所授课程的学生中,成绩最高的学生姓名及其成绩(不考虑并列)。 查询选修 “苍空” 老师所授课程的学生中,成绩最高的学生姓名及其成绩(考虑并列)。 查询只选修了一门课程的全部学生的学号、姓名。 查询至少选修两门课程的学生学号、学生姓名、选修课程数量。 查询两门及以上不及格的同学的学号、学生姓名、选修课程数量。 查询选修了所有课程的学生的学号、姓名。 查询未选修所有课程的学生的学号、姓名。 查询所有学生都选修了的课程的课程号、课程名。 查询选修 “生物” 和 “物理” 课程的所有学生学号、姓名。 查询至少有一门课与学号为“1”的学生所选的课程相同的其他学生学号 和 姓名 。 查询与学号为 “2” 的同学选修的课程完全相同的其他 学生学号 和 姓名 。 查询“生物”课程比“物理”课程成绩高的所有学生的学号; 查询每门课程成绩最好的前3名 (不考虑成绩并列情况) 。 查询每门课程成绩最好的前3名 (考虑成绩并列情况) 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
2022-02-25 08_04、协程