我的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名 (考虑成绩并列情况) 。
复制代码

 

posted @   三三得九86  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
历史上的今天:
2022-02-25 08_04、协程
点击右上角即可分享
微信分享提示