• MySQL数据库实验四:嵌套查询


    实验四          嵌套查询

    一、实验目的

    掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法。

    二、实验环境

    三、实验示例

    1、  查询与“刘晨”在同一个系学习的学生。

          SELECT Sno,Sname,Sdept

               FROM Student

         WHERE Sdept  IN

                      (SELECT Sdept

                       FROM Student

                       WHERE Sname= ‘ 刘晨 ’);

        用自身连接完成

         SELECT  S1.Sno,S1.Sname,S1.Sdept

          FROM     Student S1,Student S2

          WHERE  S1.Sdept = S2.Sdept  AND

                          S2.Sname = '刘晨';

    2、查询选修了课程名为“信息系统”的学生学号和姓名

          SELECT Sno,Sname             ③ 最后在Student关系中

          FROM    Student                   取出Sno和Sname

          WHERE Sno  IN

                 (SELECT Sno             ② 然后在SC关系中找出选

                  FROM    SC              修了3号课程的学生学号

                  WHERE  Cno IN

                         (SELECT Cno           ① 首先在Course关系中找出

                           FROM Course                “信息系统”的课程号,为3号

                           WHERE Cname= ‘信息系统’

                         )

                  );

    3、检索学C2课程的学号与姓名。

       SELECT S#,SNAME   FROM S

       WHERE S# = SOME(SELECT  S#  FROM SC

                            WHERE C# ='C2');

    4、 检索至少有一门成绩超过学生S4一门成绩的学

       生学号。

       SELECT DISTINCT S#   FROM SC

       WHERE SCORE > SOME(SELECT SCORE  FROM SC

                                 WHERE S#='S4');

    5、 检索不学C2课程的学生姓名与年龄。

           SELECT SNAME,AGE  FROM S

           WHERE S# <> ALL(SELECT S#  FROM SC

                          WHERE C#= 'C2');

    6、 检索平均成绩最高的学生学号。

           SELECT S#  FROM SC

           GROUP BY S#

             HAVING AVG SCORE >=

                  ALL(SELECT AVG(SCORE) FROM SC

                   GROUP BY S#);

    7、查询所有选修了1号课程的学生姓名。

         SELECT Sname

         FROM Student

         WHERE EXISTS

                       (SELECT *

                        FROM SC

                        WHERE Sno=Student.Sno AND Cno= ' 1 ');

    8、  查询没有选修1号课程的学生姓名。

         SELECT Sname

         FROM Student

         WHERE NOT EXISTS

                       (SELECT *

                        FROM SC

                        WHERE Sno = Student.Sno AND Cno='1');

    9、查询选修了全部课程的学生姓名。

            SELECT Sname

            FROM Student

            WHERE NOT EXISTS

                        (SELECT *

                            FROM Course

                            WHERE NOT EXISTS

                                          (SELECT *

                                           FROM SC

                                           WHERE Sno= Student.Sno

                                                 AND Cno= Course.Cno

                                           )

                           );

      四、实验内容与步骤

    1、检索WANG同学不学的课程的课程号。

    2、 检索学号比WANG同学大,而年龄比他小的学生姓名。

    3、 求年龄大于女同学平均年龄的男学生姓名和年龄。

    4、 求年龄大于所有女同学年龄的男学生姓名和年龄。

    5、检索全部学生都选修的课程的课程号与课程名。

    6、检索选修课程包含LIU老师所授课程的学生学号。

  • 相关阅读:
    elk2
    elk
    skywalking学习ppt
    Spring Boot]SpringBoot四大神器之Actuator
    黑马程序员spring data jpa 2019年第一版本
    css总结7:盒子模型理解
    css总结5:px、em、rem区别介绍
    css总结4:input 去掉外边框,placeholder的字体颜色、字号
    css总结3:Flex 布局教程:Flex-demos(转)
    css总结2:Flex 布局教程:Flex 语法(转)
  • 原文地址:https://www.cnblogs.com/gaosheng-221/p/6171830.html
Copyright © 2020-2023  润新知