数据库实验五数据的查询(4学时)

这个应该要两个小时的上机实验吧,我记得第一次做这个实验,我没做完,下面是我课后做的除了最后三小题还没写,12.13.14.15我没找到书上的例子不知道对不对,留下参考,等下次问老师,看老师的方法

实验SQL的数据查询4学时

一、实验目的

1. 熟练使用SQL语言select 命令进行数据库数据的各类查询单表查询、多表连接查询、分组统计查询及嵌套查询

2会使用带有子查询的数据更新命令insertupdatedelete

 

二、实验准备及任务

1.复习教材上SQL语言中select 命令带有子查询的insertupdatedelete

命令。

2使用教师已经录入相关数据的附录二的xsglsjk”数据库,完成以下查询,预先写好相应的命令。

1)查询姓名中第二个字为“勇”的男学生姓名班级

2)查询成绩为68788898选修记录。

3)查询选修了“4”号课程没有成绩的学生学号

4)查询00311”班所有女生的学号、姓名出生年份

5)查询李勇敏”同学的班长姓名。

6)查询“2001102”同学选课门数

7)统计学生表中的班级数

8查询00311”班每位同学的课程平均分。

9查询哪些学生最低分大于70,最高分小于90,输出他们学号

10)计算Student×Cj×Course的结果。

11clno升序、Sage降序列出Student表的学生信息

12列出成绩高于学号为2000101”、课程号为“3”的成绩的所有选课记录。

13)查询和张婷婷”同学在同一班级的学生信息。

14)查询不及格课程在三门及以上的同学。

15*查询选修了目前Course中所有课程的同学。

3. 完成带有子查询的insertupdatedelete任务,预先写好相应的命令。

16对每位同学,求平均成绩,并把结果存入新建立的表中。

17将班级号为01312”班级的所有学生的成绩加5分。

18删除01311”班级的所有学生的成绩记录。

 mycode:

select sname,clno
from student
where sname like '_勇%';

select sno
from cj
where grade in ('68', '78', '88', '98');
--或者写成where grade = 68 or grade = 78 or grade = 88 or grade = 98;两者等价

select sno
from cj
where cno = 4 and grade is null;

select sno, sname, 2018 - sage
from student
where clno = '00311' and ssex = '女';

select sname 
from student
where sno = 
			(
			select monitor
			from class 
			where clno = 
						(
						select clno 
						from student
						where sname = '李勇敏'
						)
			)

select count(cno)
from cj
where sno = '2001102'

select count(distinct clno)
from student 


select sno,avg(grade)
from cj
where sno in 
			(select sno
			 from student
			 where clno = '00311'
			)
group by sno

select sno 
from cj
group by sno
having min(grade)>70 and max(grade)<90;

select student.sno,sname,ssex,sage,grade,clno
from student,cj,course
where student.sno = cj.sno;

select sno,clno,sage
from student
order by  sage desc,clno asc;

select grade
from cj
where grade > 
			(
			select grade
			from cj
			where sno = '2000101' and cno = 3
			)


select sno,sage,sname
from student
where clno in 
			(
			select clno 
			from student
			where sname = '张婷婷'
			)


select Sno
from cj
having count((grade)<60)>30


select sno
from cj
where cno = *;


你可能感兴趣的:(数据库,数据库实验)