问题 问答题

在学籍管理中,设有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语句的掌握。

单项选择题
单项选择题