在学籍管理中,设有4个表,关系模式分别为:
STUDFNT(SNO,SNAME,SEX,BIRTHDAY,CLASS)
TEACHER(TNO ,TNAME, SEX,BIRTHDAY,PROFESSION,DEPARTMENT)
COURSE(CNO,CNAME, TNO)
SCORE(SNO,CNO,DEGREE)
说明:
学生关系模式中:SNO:学号;SNAME:姓名;SEX:性别;BI]RTHDAY:出生日期;CLASS:班级;
教师关系模式中:TNO:教师号;TNAME:姓名;SEX:性别;BIRTHDAY:出生日期;PRO-FESSION:职称;DEPARTMENT:所在系;
课程关系模式中:CNO:课程号;CNAME:课程名;TNO:任课教师号;
成绩关系模式中:SNO:学号;CNO:课程号;DEGREE:分数。
请用SQL查询语句实现下列操作:
1)显示教师所有的单位,即不重复的DEPARTMENT列。
2)显示STUDENT表中“95031”班或性别为“女”的同学记录。
3)以CNO升序,DEGREE降序显示SCORE表的所有记录。
4)显示“95031”班的学生人数。
5)显示SCORE表中至少有5名学生选修的并以3开头的课程号的平均分。
6)显示最低分大于70,最高分小于90的SNO列。
7)显示选修“3 -105”课程的成绩高于“109”号同学成绩的所有同学的记录。
8)显示SCORE表中选学多门课程的同学中分数为非最高分成绩的记录。
9)列出学号为“108”的同学同年出生的所有学生的SNO、SNAME和BIRTHDAY。
10)显示“张三”教师任课的学生成绩。
参考答案:
A)SELECT DISTICT DEPARTMENT FROMTEACHER;
B)SELECT* FROM STUDENT WHERE CLASS=‘IE0CA’OR SEX=‘女’;
C)SELECT* FROM SCORE ORDER BY CNOASC,DEGREE DESC;
D)SELECT COUNT(*) FROM STUDENTWHERE CLASS=‘IE0CA’:
E)SELECT CNO, AVG(DEGREE) FROM SCORE WHERE CNO like‘C%’ GROUP BY CNO HAV-ING COUNT(*)>E;
F)SELECT SNO FROM SCORE GROUP BY SNOMIN(DEGREE>G0 AND MAX(DEGREE)<I0;
G)SELECT X.CNO,X.SNO,X.DEGREE FROMSCORE X,SCORE Y WHERE X.CNO=‘C-A0E’ANDX. CNO=Y.CNO AND Y.SNO=‘A0I’ANDX.DEGREE>Y.DEGREE:
H)SELECT A.SNO,A.DEGREE,A.CNO FROMSCORE A, SCORE B WHERE A.SNO=B.SNO ANDA.DEGREE<B.DEGREE:
I)SEIECT SNO, SNAME,BIRTHDAY FROMSTUDENT WHERE YEAR(BIRTHDAY)=(SELECTYEAR(BIRTHDAY)FROM STUDENT WHERE SNO=“A0H”):
A0)SELECT CNO, SNO, DEGREE FROM SCORE WHERE CNO=(SELECT X.CNO FROM COURSEX, TEACHER Y WHERE X.TNO=Y.TNO ANDY.TNAME=‘张三’)。
解析:
主要考查了SQL的数据查询功能、数据定义功能和数据操纵功能。这类问题主要是考查对SE-LECT FROM WHERE语句的掌握。