[sql]sql练习题
create table class(
cid int not null primary key auto_increment,
caption varchar(40)
);
insert into class(caption)values("三年二班");
insert into class(caption)values("一年三班");
insert into class(caption)values("三年一班");
create table student(
sid int primary key not null auto_increment,
sname varchar(40) not null,
gender varchar(40) not null,
class_id int,
CONSTRAINT fk_student_to_class FOREIGN key(class_id) REFERENCES class(cid)
);
insert into student(sname,gender,class_id)values('钢蛋','女',1);
insert into student(sname,gender,class_id)values('钢炮','女',1);
insert into student(sname,gender,class_id)values('山炮','男',2);
create table teacher(
tid int not null primary key auto_increment,
tname varchar(40) not null
);
insert into teacher(tname)values("波多");
insert into teacher(tname)values("苍空");
insert into teacher(tname)values("饭岛");
drop table course;
create table course(
cid int not null auto_increment primary key,
cname varchar(40) not null,
teacher_id int not null,
CONSTRAINT fk_course_to_teacher FOREIGN key (teacher_id) REFERENCES teacher(tid)
);
insert into course(cname,teacher_id)values('生物',1);
insert into course(cname,teacher_id)values('体育',1);
insert into course(cname,teacher_id)values('物理',2);
create table score(
sid int not null auto_increment primary key,
student_id int not null,
course_id int not null,
number int not null,
CONSTRAINT fk_score_to_student FOREIGN key(student_id) REFERENCES student(sid),
CONSTRAINT fk_score_to_course FOREIGN key(course_id) REFERENCES course(cid)
);
insert into score(student_id,course_id,number)values(1,1,60);
insert into score(student_id,course_id,number)values(1,2,59);
insert into score(student_id,course_id,number)values(2,2,100);
1、自行创建测试数据
2、查询“生物”课程比“物理”课程成绩高的所有学生的学号;
3、查询平均成绩大于60分的同学的学号和平均成绩;
4、查询所有同学的学号、姓名、选课数、总成绩;
5、查询姓“李”的老师的个数;
6、查询没学过“叶平”老师课的同学的学号、姓名;
7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
8、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
9、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
10、查询有课程成绩小于60分的同学的学号、姓名;
11、查询没有学全所有课的同学的学号、姓名;
12、查询至少有一门课与学号为“001”的同学所学相同的同学的学号和姓名;
13、查询至少学过学号为“001”同学所选课程中任意一门课的其他同学学号和姓名;
14、查询和“002”号的同学学习的课程完全相同的其他同学学号和姓名;
15、删除学习“叶平”老师课的SC表记录;
16、向SC表中插入一些记录,这些记录要求符合以下条件:①没有上过编号“002”课程的同学学号;②插入“002”号课程的平均成绩;
17、按平均成绩从低到高显示所有学生的“语文”、“数学”、“英语”三门的课程成绩,按如下形式显示: 学生ID,语文,数学,英语,有效课程数,有效平均分;
18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;
19、按各科平均成绩从低到高和及格率的百分数从高到低顺序;
20、课程平均分从高到低显示(现实任课老师);