疫情期间带软件测试学生学习数据库知识

导入数据并根据题目要求查询相关结果!

CREATE TABLE STUDENT

(SNO VARCHAR(3) NOT NULL,

SNAME VARCHAR(4) NOT NULL,

SSEX VARCHAR(2) NOT NULL,

SBIRTHDAY DATETIME,

CLASS VARCHAR(5))

go

CREATE TABLE COURSE

(CNO VARCHAR(5) NOT NULL,

CNAME VARCHAR(10) NOT NULL,

TNO VARCHAR(10) NOT NULL)

go

CREATE TABLE SCORE

(SNO VARCHAR(3) NOT NULL,

CNO VARCHAR(5) NOT NULL,

DEGREE NUMERIC(10, 1) NOT NULL)

go

CREATE TABLE TEACHER

(TNO VARCHAR(3) NOT NULL,

TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL,

TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6),

DEPART VARCHAR(10) NOT NULL)

INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾华'

,'男' ,1977-09-01,95033);

INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,'匡明'

,'男' ,1975-10-02,95031);

INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,'王丽'

,'女' ,1976-01-23,95033);

INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,'李军'

,'男' ,1976-02-20,95033);

INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,'王芳'

,'女' ,1975-02-10,95031);

INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,'陆君'

,'男' ,1974-06-03,95031);

GO

INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-105' ,'计算机导论',825)

INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-245' ,'操作系统' ,804);

INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('6-166' ,'数据电路' ,856);

INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('9-888' ,'高等数学' ,100);

GO

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-245',86);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-245',75);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-245',68);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-105',92);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-105',88);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-105',76);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'3-105',64);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'3-105',91);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'3-105',78);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'6-166',85);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'6-106',79);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'6-166',81);

GO

INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)

VALUES (804,'李诚','男','1958-12-02','副教授','计算机系');

INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)

VALUES (856,'张旭','男','1969-03-12','讲师','电子工程系');

INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)

VALUES (825,'王萍','女','1972-05-05','助教','计算机系');

INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)

VALUES (831,'刘冰','女','1977-08-14','助教','电子工程系');

题目:

1、 查询 Student 表中的所有记录的 Sname、Ssex 和 Class 列。

2、 查询教师所有的单位即不重复的 Depart 列。

3、 查询 Student 表的所有记录。

4、 查询 Score 表中成绩在 60 到 80 之间的所有记录。

5、 查询 Score 表中成绩为 85,86 或 88 的记录。

6、 查询 Student 表中“95031”班或性别为“女”的同学记录。

7、 以 Class 降序查询 Student 表的所有记录。

8、 以 Cno 升序、Degree 降序查询 Score 表的所有记录。

9、 查询“95031”班的学生人数。

10、查询 Score 表中的最高分的学生学号和课程号。

11、查询‘3-105’号课程的平均分。

12、查询 Score 表中至少有 5 名学生选修的并以 3 开头的课程的平均分数。

13、查询最低分大于 70,最高分小于 90 的 Sno 列。

14、查询所有学生的 Sname、Cno 和 Degree 列。

15、查询所有学生的 Sno、Cname 和 Degree 列。

16、查询所有学生的 Sname、Cname 和 Degree 列。

17、查询“95033”班所选课程的平均分。

18、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。

19、查询 score 中选学一门以上课程的同学中分数为非最高分成绩的记录。

20、查询“张旭“教师任课的学生成绩。

21、查询选修某课程的同学人数多于 5 人的教师姓名。

22、查询存在有 85 分以上成绩的课程 Cno.

23、查询出“计算机系“教师所教课程的成绩表。

24、查询“计算机系”与“电子工程系“不同职称的教师的 Tname 和 Prof。

答案如下:

答案:

--1、 查询Student 表中的所有记录的Sname、Ssex 和Class 列。

select Sname,Ssex,Class

from Student

--2、 查询教师所有的单位即不重复的Depart 列。

select Depart

from TEACHER

group by Depart

--3、 查询Student 表的所有记录。

select *

from Student

--4、 查询Score 表中成绩在60 到80 之间的所有记录。'

select *

from Score

where DEGREE between 60 and 80

--5、 查询Score 表中成绩为85,86 或88 的记录。

select *

from Score

where DEGREE in (85,86,88)

--6、 查询Student 表中“95031”班或性别为“女”的同学记录。

select *

from Student

where Class='95031' and Ssex='女'

--7、 以Class 降序查询Student 表的所有记录。

select *

from Student

order by Class Desc

--8、 以Cno 升序、Degree 降序查询Score 表的所有记录。

select *

from Score

order by Cno,Degree Desc

--9、 查询“95031”班的学生人数。

select Class,count(*) [人数]

from Student

group by Class

having Class='95031'

--10、查询Score 表中的最高分的学生学号和课程号。

select Sno,Cno

from Score

where Degree in

(

select Max(Degree)

from Score

)

--11、查询‘3-105’号课程的平均分。

select Cno,avg(Degree) [平均分]

from Score

group by Cno

having Cno='3-105'

--12、查询Score 表中至少有5 名学生选修的并以3 开头的课程的平均分数。

select Cno,count(*) [选课人数],avg(Degree) [平均分]

from Score

group by Cno

having Cno like '3%' and count(*)>=5

--13、查询最低分大于70,最高分小于90 的Sno 列。

select Sno,max(degree) [最高分],min(degree) [最低分]

from Score

group by Sno

having min(degree)>70 and max(degree)<90

--14、查询所有学生的Sname、Cno 和Degree 列。

select A.Sname,B.Cno,B.Degree

from Student A,Score B

where A.Sno=B.Sno

--15、查询所有学生的Sno、Cname 和Degree 列。

select B.Sno,A.Cname,B.Degree

from Course A,Score B

where A.Cno=B.Cno

--16、查询所有学生的Sname、Cname 和Degree 列。

select A.Sname,B.Cname,C.Degree

from Student A,Course B,Score C

where A.Sno=C.Sno and B.Cno=C.Cno

--17、查询“95033”班所选课程的平均分。

select Cno,avg(Degree) [平均分]

from Score

where Sno in

(

select Sno

from Student

where Class='95033'

)

group by Cno

--18、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。

select *

from Student

where Sno in

(

select SNO

from Score

where Cno='3-105'

and Degree>

(

select Degree

from Score

where Cno='3-105' and Sno='109'

))

--19、查询score 中选学一门以上课程的同学中分数为非最高分成绩的记录。

select *

from

(

select *

from Score

where Sno in

(

select Sno

from Score

group by Sno

having count(*)>1

)) A

inner join

(

select Cno,max(Degree) maxdegree

from Score

group by Cno

) B

on A.Cno=B.Cno

where A.Degree<b.maxdegree>

--20、查询“张旭“教师任课的学生成绩。

select *

from Score

where CNO in

(

select CNO

from Course

where TNO in

(

select TNO

from Teacher

where Tname='张旭'

))

--21、查询选修某课程的同学人数多于5 人的教师姓名。

select Tname

from Teacher

where TNO in

(

select TNO

from Course

where CNO in

(

select CNO

from Score

group by Cno

having count(*)>5

))

--22、查询存在有85 分以上成绩的课程Cno.

select Cno

from Score

group by Cno

having max(degree)>=85

--23、查询出“计算机系“教师所教课程的成绩表。

select *

from Score

where CNO in

(

select CNO

from Course

where TNO in

(

select TNO

from Teacher

where Depart='计算机系'

))

--24、查询“计算机系”与“电子工程系“不同职称的教师的Tname 和Prof。

select Tname,Prof

from Teacher

where Depart='计算机系' and Prof not in

(

select Prof

from Teacher

where Depart='电子工程系'

)

or Depart='电子工程系' and Prof not in

(

select Prof

from Teacher

where Depart='计算机系'

)

"/<b.maxdegree>


分享到:


相關文章: