数据库实验五
本学期数据库实验,之前又看到别人写的,但是有一部分有点小错,于是还是自己上机实验的代码比较靠谱,这里贴出来供大家参考
/
/
如果有错误 还望指出
///
SQL的数据查询
一、实验目的
1. 熟练使用SQL语言select 命令进行数据库数据的各类查询:单表查询、多表连接查询、分组统计查询及嵌套查询等。
2.会使用带有子查询的数据更新命令insert、update、delete。
二、实验准备及任务
1.复习教材上SQL语言中select 命令和带有子查询的insert、update、delete
命令。
2.使用教师已经录入相关数据的附录二的“xsglsjk”数据库,完成以下查询,预先写好相应的命令。
(1)查询姓名中第二个字为“勇”的男学生的姓名和班级。
(2)查询成绩为68、78、88和98的选修记录。
(3)查询选修了“4”号课程没有成绩的学生学号。
(4)查询“00311”班所有女生的学号、姓名和出生年份。
(5)查询“李勇敏”同学的班长姓名。
(6)查询“2001102”同学的选课门数。
(7)统计学生表中的班级数。
(8)查询“00311”班每位同学的课程平均分。
(9)查询哪些学生最低分大于70,最高分小于90,输出他们的学号。
(10)计算Student×Cj×Course的结果。
(11)以clno升序、Sage降序列出Student表的学生信息。
(12)列出成绩高于学号为“2000101”、课程号为“3”的成绩的所有选课记录。
(13)查询和“张婷婷”同学在同一班级的学生信息。
(14)查询不及格课程在三门及以上的同学。
(15)*查询选修了目前Course中所有课程的同学。
- 完成带有子查询的insert、update、delete的任务,预先写好相应的命令。
(16)对每位同学,求平均成绩,并把结果存入新建立的表中。
(17)将班级号为“01312”班级的所有女学生的成绩加5分。
(18)删除“01311”班级的所有学生的成绩记录。
我只贴上几个我认为还不错的,太简单的就不放代码了
select sname
from student
where sno in
(select monitor
from class
where clno in
(
select clno
from student
where sname = '李勇敏'
)
);
select COUNT(distinct cno)
from cj
where sno = '2001102'
//
select distinct sno
from cj
where cj.grade > 70 and cj.grade <90;
select sno,avg(grade)
from cj
where sno in
(select sno
from student
where clno = '00311'
)
group by sno
//
select sno,clno,sage
from student
order by sage desc,clno asc;
//
select grade,cno,sno
from cj
where grade >
(
select grade
from cj
where sno = '2000101' and cno = 3
)
select sno ,count(cno) 不及格科目数
from cj
where grade < 60
group by (sno)
having COUNT(cno) >= 3
select sno ,AVG(grade) 平均成绩
from cj
group by (sno)