(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;