数据库数据查询

1

1)  查询选修1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;

SELECT SNO,GRADE

FROM SC

WHERE CNO=1

ORDER BY GRADE DESC,SNO,ASC

2)查询缺少了成绩的学生的学号和课程号。

     SELECT SNO,CNO

     FROM SC

     WHERE GRADE=NULL

3)查询每个学生的学号,姓名,选修的课程名,成绩;

     SELECT STUDENT.SNO,SNAME,CNAME,GRADE

     FROM STUDENT,COURSE,SC

     WHERE STUDENT.SNO=SC.SNO AND COURSE.CNO=SC.CNO;

4)查询每门课程的先行课程的课程名称,学分;

    SELECT FIRST.CNO,SECOND.CNAME,SECOND.CCREDIT

    FROM COURSE.FIRST,COURSE.SECOND

    WHERE FIRST.CPNO=SECOND.CMO;

5)查询每一门课的间接先行课的课程名称;

SELECT FIRST,THIRD.CNAME

    FROM COURSE FIRST,COURSE SECOND,COURSE THIRD

    WHERE SECOND.CPNO=THIRD.CNO AND FIRST.CPNO=SECOND.CNO;

6)查询所在系部为“MA”且选修了高等数学课程的学生姓名,年龄,性别;

     SELECT SNAME,SAGE,SSEX

     FROM STUDENT,COURSE,SC

     WHERE STUDENT.SNO=SC.SNO AND COURSE.CNO=SC.CNO AND STUDENT.SDEPT=MA

 AND COURSE.CNAME=高等数学;

7)查询选修了数据结构课程,且成绩在90分以上的学生姓名,年龄;

     SELECT STUDENT.SNAME,SAGE

      FROM STUDENT,COURSE,SC

  WHERE STUDENT.SNO=SC.SNO AND COURSE.CNO=SC.CNO AND COURSE.CNAME='数据结构'AND GRADE>90;

8查询选修了全部课程的学生的姓名;

SELECT SNAME
FROM STUDENT
WHERE NOT EXISTS
SELECT *
FROM COURSE
WHERE NOT EXISTS 
(SELECT *
FROM SC
WHERE SNO =STUDENT.SNO

AND.CNO=COURSE.CNO)

9)查询至少选修了学号为“201215121”的学生所选修的全部课程的学生学号和姓名

     SELECTDISTINCT STUDENT.SNO,SNAME

      FROM SC SCX,STUDENT

      WHERE SCX.SNO=STUDENT.SNO ANDNOTEXISTS

      (SELECT*

      FROM SC SCY

      WHERE SCY.SNO='201215121'ANDNOTEXISTS

      (SELECT*

      FROM SC SCZ

      WHERE SCZ.SNO=SCX.SNO AND SCZ.CNO=SCY.CNO));

10)查询选修了操作系统课程的学生人数;

      SELECT COUNT(DISTINCT SNO)

      FROM SC,COURSE

      WHERE SC.CNO=COURSE.CNO;

11查询选修了数据库课程的最高分,平均分;

      SELECTMAX(GRADE),AVG(GRADE)

       FROM SC,COURSE

    WHERE SC.CNO=COURSE.CNO AND COURSE.CNAME='数据库';

12查询每个学生的学号,姓名,所获得的总学分(成绩大于等于60,则获得该门课程的学分);

SELECT STUDENT.SNO,SNAME,SUM(CCREDIT)

FROM STUDENT,SC,COURSE

WHERE STUDENT.SNO=SC.SNO AND COURSE.CNO=SC.CNO AND SC.GRADE>=60

GROUP BY STUDENT.SNO,STUDENT.SNAME

 

 

2

1) 找出工程项目J2使用的各种零件的名称及其数量

SELECT PNAME,QTY

         FROM P,SPJ

         WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2;

2) 找出使用上海产的零件的工程名称

         SELECT JNAME

         FROM S,J,SPJ

         WHERE S.SNO=SPJ.SNO AND J.JNO=SPJ.JNO AND S.CITY=’上海’;

3) 找出供应工程J1零件为红色的供应商号码

         SELECT SNO

         FROM P,SPJ

         WHERE P.PNO=SPJ.PNO AND P.COLOK=’红’ AND SPJ.JNO=J1;

4) 找出没有使用天津供应商生产的红色零件的工程名称(待检测)

         SELECT JNAME

         FROM J

         WHERE NOT EXISTS

         (SELECT *

         FROM S,P,SPJ

         WHERE S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO AND S.CITY=’天津’ AND P.COLOK=’红’);

5) 找出提供零件种类超过了2的供应商号码

         SELECT SNO

         FROM SPJ

         GROUP BY SNO

HAVING COUNT(JNO)>2;

        

6) 找出为3以上的工程提供零件的供应商名称

         SELECT SNAME

         FROM S,SPJ

         WHERE S.SNO=SPJ.SNO

         GROUP BY SNAME

         HAVING COUNT(JNO)>=3;

猜你喜欢

转载自blog.csdn.net/wanwu_fusu/article/details/80715794