• PTAsql补题(1)


    目录

    实现集合减运算,查询选修课程c++而没有选修课程java 的学生的编号

    表结构:

    表样例

    输出样例:

    利用集合交运算,查询既选修课程c++又选修课程java的学生的编号

    表结构:

    表样例

    输出样例:

    查询本周过生日的学生,假设现在是 2020-12-22 00:00:00.000000

    表结构:

    表样例

    输出样例:

    查询各学生的年龄,只按年份来算

    表结构:

    表样例

    输出样例:

     成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

    表结构:

    输出样例:

    按各科平均成绩从低到高和及格率的百分数从高到低顺序:

    表结构:

    表样例

    输出样例:


    实现集合减运算,查询选修课程c++而没有选修课程java 的学生的编号

    表结构:

    请在这里写定义表结构的SQL语句。例如:

    1. CREATE TABLE `students` (
    2. `sid` bigint(20) NOT NULL,
    3. `sname` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    4. `email` char(20) CHARACTER SET utf8mb4 DEFAULT NULL,
    5. `grade` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    6. PRIMARY KEY (`sid`)
    7. );
    8. CREATE TABLE `teachers` (
    9. `tid` bigint(20) NOT NULL,
    10. `tname` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    11. `email` char(20) CHARACTER SET utf8mb4 DEFAULT NULL,
    12. `salary` smallint(6) DEFAULT NULL,
    13. PRIMARY KEY (`tid`)
    14. );
    15. CREATE TABLE `courses` (
    16. `cid` bigint(20) NOT NULL,
    17. `cname` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    18. `hour` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    19. PRIMARY KEY (`cid`)
    20. );
    21. CREATE TABLE `choices` (
    22. `no` char(10) CHARACTER SET utf8mb4 NOT NULL,
    23. `sid` bigint(20) DEFAULT NULL,
    24. `tid` bigint(20) DEFAULT NULL,
    25. `cid` bigint(20) DEFAULT NULL,
    26. `sorce` int(11) DEFAULT NULL,
    27. PRIMARY KEY (`no`),
    28. KEY `FK_CHOICES_STUDENTS_idx` (`sid`),
    29. KEY `FK_CHOICES_TEACHERS_idx` (`tid`),
    30. KEY `FK_CHOICES_COURESE_idx` (`cid`),
    31. CONSTRAINT `FK_CHOICES_COURESE` FOREIGN KEY (`cid`) REFERENCES `courses` (`cid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
    32. CONSTRAINT `FK_CHOICES_STUDENTS` FOREIGN KEY (`sid`) REFERENCES `students` (`sid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
    33. CONSTRAINT `FK_CHOICES_TEACHERS` FOREIGN KEY (`tid`) REFERENCES `teachers` (`tid`) ON DELETE NO ACTION ON UPDATE NO ACTION
    34. );

    表样例

    请在这里给出上述表结构对应的表样例。例如

    choices表:

    courses表:

    输出样例:

    请在这里给出输出样例。例如:

     

    1. select ch.sid
    2. from choices ch join courses c on ch.cid=c.cid
    3. where c.cname ='c++'
    4. and ch.sid not in (select ch.sid
    5. from choices ch join courses c on ch.cid=c.cid
    6. where c.cname ='java')

    利用集合交运算,查询既选修课程c++又选修课程java的学生的编号

    表结构:

    请在这里写定义表结构的SQL语句。例如:

    1. CREATE TABLE `students` (
    2. `sid` bigint(20) NOT NULL,
    3. `sname` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    4. `email` char(20) CHARACTER SET utf8mb4 DEFAULT NULL,
    5. `grade` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    6. PRIMARY KEY (`sid`)
    7. );
    8. CREATE TABLE `teachers` (
    9. `tid` bigint(20) NOT NULL,
    10. `tname` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    11. `email` char(20) CHARACTER SET utf8mb4 DEFAULT NULL,
    12. `salary` smallint(6) DEFAULT NULL,
    13. PRIMARY KEY (`tid`)
    14. );
    15. CREATE TABLE `courses` (
    16. `cid` bigint(20) NOT NULL,
    17. `cname` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    18. `hour` char(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    19. PRIMARY KEY (`cid`)
    20. );
    21. CREATE TABLE `choices` (
    22. `no` char(10) CHARACTER SET utf8mb4 NOT NULL,
    23. `sid` bigint(20) DEFAULT NULL,
    24. `tid` bigint(20) DEFAULT NULL,
    25. `cid` bigint(20) DEFAULT NULL,
    26. `sorce` int(11) DEFAULT NULL,
    27. PRIMARY KEY (`no`),
    28. KEY `FK_CHOICES_STUDENTS_idx` (`sid`),
    29. KEY `FK_CHOICES_TEACHERS_idx` (`tid`),
    30. KEY `FK_CHOICES_COURESE_idx` (`cid`),
    31. CONSTRAINT `FK_CHOICES_COURESE` FOREIGN KEY (`cid`) REFERENCES `courses` (`cid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
    32. CONSTRAINT `FK_CHOICES_STUDENTS` FOREIGN KEY (`sid`) REFERENCES `students` (`sid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
    33. CONSTRAINT `FK_CHOICES_TEACHERS` FOREIGN KEY (`tid`) REFERENCES `teachers` (`tid`) ON DELETE NO ACTION ON UPDATE NO ACTION
    34. );

    表样例

    请在这里给出上述表结构对应的表样例。例如

    courses表:

     

    choices表:

     

    输出样例:

    请在这里给出输出样例。例如:

     

    1. select ch.sid
    2. from choices ch join courses c on ch.cid=c.cid
    3. where ch.sid not in
    4. (select ch.sid
    5. from choices ch join courses c on ch.cid=c.cid
    6. where c.cname <>'java' )
    7. and c.cname ='c++'

    查询本周过生日的学生,假设现在是 2020-12-22 00:00:00.000000

    表结构:

    1. CREATE TABLE `course` (
    2. `CId` varchar(10) DEFAULT NULL,
    3. `Cname` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    4. `TId` varchar(10) DEFAULT NULL
    5. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    6. CREATE TABLE `sc` (
    7. `SId` varchar(10) DEFAULT NULL,
    8. `CId` varchar(10) DEFAULT NULL,
    9. `score` decimal(18,1) DEFAULT NULL
    10. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    11. CREATE TABLE `student` (
    12. `SId` varchar(10) DEFAULT NULL,
    13. `Sname` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    14. `Sage` datetime(6) DEFAULT NULL,
    15. `Ssex` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL
    16. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    17. CREATE TABLE `teacher` (
    18. `TId` varchar(10) DEFAULT NULL,
    19. `Tname` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL
    20. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    表样例

    Course表:

     

    Sc表:

    Student表:

     

    Teacher表:

    输出样例:

    请在这里给出输出样例。例如:

    1. select *
    2. from student
    3. where WEEK("2020-12-22 00:00:00.000000")=WEEK(Sage)

    查询各学生的年龄,只按年份来算

    提示:请使用SELECT语句作答。

    表结构:

    请在这里写定义表结构的SQL语句。例如:

    1. CREATE TABLE `student` (
    2. `SId` varchar(10) DEFAULT NULL,
    3. `Sname` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    4. `Sage` datetime(6) DEFAULT NULL,
    5. `Ssex` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL
    6. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    表样例

    请在这里给出上述表结构对应的表样例。例如

    Course表:

    Sc表:

    student表:

    Teacher表:

    输出样例:

     

    1. select sname,(2020-year(Sage)) age
    2. from student

     成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩

    提示:请使用SELECT语句作答。

    表结构:

    请在这里写定义表结构的SQL语句。例如:

    1. CREATE TABLE `sc` (
    2. `SId` varchar(10) DEFAULT NULL,
    3. `CId` varchar(10) DEFAULT NULL,
    4. `score` decimal(18,1) DEFAULT NULL
    5. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    1. CREATE TABLE `student` (
    2. `SId` varchar(10) DEFAULT NULL,
    3. `Sname` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    4. `Sage` datetime(6) DEFAULT NULL,
    5. `Ssex` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL
    6. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    1. CREATE TABLE `course` (
    2. `CId` varchar(10) DEFAULT NULL,
    3. `Cname` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL,
    4. `TId` varchar(10) DEFAULT NULL
    5. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    1. CREATE TABLE `teacher` (
    2. `TId` varchar(10) DEFAULT NULL,
    3. `Tname` varchar(10) CHARACTER SET utf8mb4 DEFAULT NULL
    4. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    输出样例:

    请在这里给出输出样例。例如:

    SIdSnameSageSsexscoreCId
    51aaa2017-12-25 00:00:00 00000066.606
    1. select student.*,sc.score,sc.CId
    2. from course, sc, teacher,student
    3. where teacher.TId = course.TId
    4. and teacher.Tname = '张三'
    5. and course.CId = sc.CId
    6. and student.SId = sc.SId
    7. and sc.score in
    8. (
    9. select max( score )
    10. from course,sc,teacher,student
    11. where teacher.TId = course.TId
    12. and teacher.Tname = '张三'
    13. and course.CId = sc.CId
    14. and student.SId = sc.SId
    15. )

    按各科平均成绩从低到高和及格率的百分数从高到低顺序:

    表结构:

    CREATE TABLE course (
    CId varchar(10) DEFAULT NULL,
    Cname varchar(10),
    TId varchar(10) DEFAULT NULL
    );

    CREATE TABLE sc (
    SId varchar(10) DEFAULT NULL,
    CId varchar(10) DEFAULT NULL,
    score decimal(18,1) DEFAULT NULL
    );

    表样例

    course表:

    sc表:

    输出样例:

    1. select cid as 课程号,
    2. coalesce(avg(score),0) as 平均成绩,
    3. 100*sum(case when coalesce(score,0)>=60 then 1 else 0 end)/count(*) as 及格百分数
    4. from sc
    5. group by cid
    6. order by 及格百分数 desc,平均成绩

  • 相关阅读:
    AtCoder Beginner Contest 212 E(DP)
    Java的多态
    加密与安全 _ 安全原则:任何客户端的东西都不可信任
    RadiAnt DICOM Viewer 2022.1 Crack
    Bigemap如何添加谷歌历史影像
    一篇文章教你Pytest快速入门和基础讲解,一定要看
    Centos - CA 证书服务
    Pyqt5入门教程(1)--环境安装
    Git使用【下】
    g++中的常用编译优化参数
  • 原文地址:https://blog.csdn.net/qq_62799214/article/details/127791820