zoukankan      html  css  js  c++  java
  • 史上最经典的数据库面试题之二

            已知关系模式:
            S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
            C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
            SC (SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

    1.找出没有选修过“李明”老师讲授课程的所有学生姓名。
            SELECT SNAME FROM S 
            WHERE NOT EXISTS( 
                SELECT * FROM SC, C 
                WHERE SC.CNO=C.CNO 
                AND CTEACHER='李明' 
                AND SC.SNO=S.SNO)

    2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩。

            SELECT S.SNO, S.SNAME, AVG_SCGRADE=AVG(SC.SCGRADE) FROM S, SC, 
            ( 
            SELECT SNO FROM SC 
            WHERE SCGRADE<60 
            GROUP BY SNO 
            HAVING COUNT(DISTINCT CNO)>=2 
            )T 
            WHERE S.SNO=T.SNO 
            AND SC.SNO=T.SNO 
            GROUP BY S.SNO, S.SNAME

    3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名。

            SELECT S.SNO, S.SNAME FROM S, 
            (
            SELECT SC.SNO FROM SC, C 
            WHERE SC.CNO=C.CNO 
            AND C.CNAME IN('1', '2') 
            GROUP BY SNO 
            HAVING COUNT(DISTINCT CNO)=2 
            )T 
            WHERE S.SNO=T.SNO

    4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号。

            SELECT S.SNO, S.SNAME FROM S, 
            ( 
            SELECT SC1.SNO FROM SC SC1, C C1, SC SC2, C C2 
            WHERE SC1.CNO=C1.CNO 
            AND C1.NAME='1' 
            AND SC2.CNO=C2.CNO 
            AND C2.NAME='2' 
            AND SC1.SCGRADE>SC2.SCGRADE 
            )T 
            WHERE S.SNO=T.SNO

    5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩。

            SELECT S.SNO, S.SNAME, SC.[1号课成绩], SC.[2号课成绩] FROM S, 
            ( 
            SELECT SC1.SNO, [1号课成绩]=SC1.SCGRADE, [2号课成绩]=SC2.SCGRADE 
            FROM SC SC1, C C1, SC SC2, C C2 
            WHERE SC1.CNO=C1.CNO 
            AND C1.NAME=‘1’ 
            AND SC2.CNO=C2.CNO 
            AND C2.NAME=‘2’ 
            AND SC1.SCGRADE>SC2.SCGRADE 
            )T 
            WHERE S.SNO=T.SNO

  • 相关阅读:
    JAVA中==与equals的区别
    spring面试重点
    struts2
    每个新手程序员必看的 SQL 指南
    QueryRunner的使用
    jquery GET POST
    jquery添加元素
    jquery 滑动动画
    jdbc 安装驱动
    为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
  • 原文地址:https://www.cnblogs.com/innosight/p/3271259.html
Copyright © 2011-2022 走看看