课外天地 李树青学习天地数据库系统原理课件 → SQL练习——学生成绩查询


  共有19688人关注过本帖树形打印复制链接

主题:SQL练习——学生成绩查询

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
SQL练习——学生成绩查询  发帖心情 Post By:2010/11/16 22:01:32 [只看该作者]

已知有三个关系:“学生”有学号,姓名,性别,生日,身高五个字段,“课程”有课程号,课程名称,学分三个字段,“成绩”有学号,课程号,分数三个字段,即
student(sid,name,sex,birthday,height)
course(cid,title,credit)
grade(sid,cid,grade)
假设sex为0表示女生,sex为1表示男生。
(1)查询含有不及格成绩的课程名称
(2)查询各个身高数值和人数分布
(3)查询所有男生的平均成绩
(4)在学生表中删除所有含有不及格成绩的记录
(5)将所有学分不满2分的课程都设置为2个学分
(6)查询所有男生的平均成绩和最高分
(7)查询所有女生的总分
(8)在课程表中删除所有学分不满3分的课程
(9)查询学分为2的课程平均成绩
(10)查询学分大于2的课程最高分


SQL脚本:
CREATE TABLE student
(
        sid varchar2(6) NOT NULL,
        name varchar2(8) NULL,
        sex number(1),
        birthday timestamp NULL,
        height number(3,2) NULL
);

insert into student values ( '000001','黎明',1,TO_DATE('15-4月 -1990','dd-Mon-yyyy'),1.78);
insert into student values ( '000002','赵怡春',0,TO_DATE('17-12月 -1992','dd-Mon-yyyy'),1.77);
insert into student values ( '000003','张富平',1,TO_DATE('1-2月 -1995','dd-Mon-yyyy'),1.78);
insert into student values ( '000004','白丽',0,TO_DATE('20-11月 -1996','dd-Mon-yyyy'),1.73);
insert into student values ( '000005','牛玉德',1,TO_DATE('1-5月 -1993','dd-Mon-yyyy'),1.74);
insert into student values ( '000006','姚华',0,TO_DATE('12-5月 -1996','dd-Mon-yyyy'),1.77);
insert into student values ( '000007','胡歌',1,TO_DATE('30-6月 -1995','dd-Mon-yyyy'),1.77);


CREATE TABLE grade
(
        sid varchar2(6) NULL,
        cid varchar2(3) NULL,
        grade number(3) NULL
);

insert into grade values ('000001','A03',56);
insert into grade values ('000002','A02',90);
insert into grade values ('000004','A02',77);
insert into grade values ('000005','B01',91);
insert into grade values ('000004','A03',76);
insert into grade values ('000003','A03',67);
insert into grade values ('000001','B01',78);
insert into grade values ('000002','A03',74);
insert into grade values ('000002','B01',86);
insert into grade values ('000003','A02',80);
insert into grade values ('000004','B01',90);


CREATE TABLE course
(
        cid varchar2(3) NOT NULL,
        title varchar2(50) NULL,
        credit number(1) NULL
);

insert into course values ('A02', 'Database', 5 );
insert into course values ('A03', 'Java', 3 );
insert into course values ('B01', 'Information System Management', 4 );
insert into course values ('C04', 'ERP', 3 );

(1)查询含有不及格成绩的课程名称
select distinct title from course natural join grade where grade<60
(2)查询各个身高数值和人数分布
select height,count(*) from student group by height
(3)查询所有男生的平均成绩
select avg(grade) from student natural join grade where sex=1
(4)在学生表中删除所有含有不及格成绩的学生记录
delete from student where sid in(select sid from grade where grade<60)
(5)将所有学分不满2分的课程都设置为2个学分
update course set credit=2 where credit<2
(6)查询所有男生的平均成绩和最高分
select avg(grade),max(grade) from student natural join grade where sex=1
(7)查询所有女生的总分
select max(grade) from student natural join grade where sex=0
(8)在课程表中删除所有学分不满3分的课程
delete from course where credit<3
(9)查询学分为2的课程平均成绩
select avg(grade) from course natural join grade where credit=2
(10)查询学分大于2的课程最高分
select max(grade) from course natural join grade where credit>2


 

[此贴子已经被作者于2010-11-16 22:36:43编辑过]

 回到顶部
客人(222.49.*.*)
  2楼


  发帖心情 Post By:2010/11/19 21:10:43 [只看该作者]

第七个有问题吧,不是max(grade),而是sum(grade)

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  3楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
回复  发帖心情 Post By:2010/11/20 7:14:45 [只看该作者]

你说的对,应该是sum

 回到顶部