在学籍管理中,设有4个表,关系模式分别为:
STUDENT(SNO ,SNAME, SEX, BIRTHDAY, CLASS)。
TEACHER(TNO ,TNAME ,SEX,BIRTHDAY, PROFESSION, DEPARTMENT)。
COURSE(CNO,CNAME, TNO)。
SCORE(SNO,CNO,DEGREE)。
说明:
学生关系模式中,SNO:学号;SNAME:姓名;SEX:性别;BIRTHDAY:出生日期;CLASS:班级。
教师关系模式中,TNO:教师号;TNAME:姓名;SEX:性别;BIRTHDAY:出生日期;PROFESSION:职称;DEPARTMENT:所在系。
课程关系模式中,CNO:课程号;CNAME:课程名;TNO:任课教师号。
成绩关系模式中,SNO:学号;CNO:课程号;DECREE:分数。
试用SQL语句完成下列操作:
(1)列出“计算机系”教师所教课程的成绩表。
(2)列出“计算机系”与“电子工程系”不同职称的教师的TNAME和PROFESSION。
(3)列出存在有85分以上成绩的课程CNO。
(4)列出选修编号为“3-105”课程且成绩同于选修了编号为“3-245”的同学的CNO、SNO和DECREE。并按DEGREE从高到低次序排列。
(5)列出选修编号为“3-105”课程且成绩高于选修了编号为“3-245”的同学的CNO、SNO和DECREE。
(6)列出成绩比该课程平均成绩低的同学的成绩表。
参考答案:SELECT CNO,SNO,DEGREE FROM SCORE WHERE CNOIN (SELECT X.CNO FROM COURSE X,TEACHER Y WHERE Y.TNO=)(ITNO AND Y.DEPARTMENT=’计算机系’);
(B)SELECT TNAME, PROFESSION FROM TEACHER WHERE DEPARTMENT=’计算机系’AND PROFESSION NOT IN (SELECT PROFESSION FROM TEACHER WHERE DEPARTMENT=’电子工程系’);
(C)SELECT DISTINCT CNO FROM SCORE WHERE DECREE>HE);
(D)SELECT CNO, SNO, DEGREE FROM SCORE WHERE CNO=’C-A0E’AND DEGREE= ANY (SELECT DECREEFROM SCORE WHERE CNO ’C-BDE’ ORDER BY DEGREE DESC;
(E)SELECT CNO,SNO,DEGREE FROM SCORE WHERE CNO=’C-A0E’ AND DEGREE>ALL (SELECT DEGREE FROM SCORE WHERE CNO=’C-BDE’);
(F)SELECT CNO,SNO,DEGREE FROM SCORE A WHERE DEGREE<(SELECT AVG(DEGREE) FROM SCORE B WHERE A.CNO=B.CNO);
解析: 主要考查了SQL的数据查询功能、数据定义功能和数据操纵功能。这类问题主要是考查对SELECT FROM WHERE 语句的掌握。