[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、课程平均分从高到低显示(现实任课老师);


posted @ 2018-04-17 21:19  mmaotai  阅读(144)  评论(0编辑  收藏  举报