1 2 3 4 5 6 7 |
create table tbl_stu (
id int not null primary key auto_increment,
name varchar(45) not null
)engine=innodb default charset=utf8; |
1 2 3 4 5 6 7 |
create table tbl_sub (
id int not null primary key auto_increment,
subject varchar(45) not null
)engine=innodb default charset=utf8; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
create table tbl_scores(
id int not null primary key auto_increment,
stu_id int,
sub_id int
score decimal(5,2),
constraint sco_stu foreign key(stu_id) references tbl_stu(id),
constraint sco_sub foreign key(sub_id) references tbl_sub(id) ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
insert into tbl_stu values (0,"小王"); insert into tbl_stu values (0,"小宋"); insert into tbl_stu values (0,"小李");
insert into tbl_sub values (0,"语文"); insert into tbl_sub values (0,"数学"); insert into tbl_sub values (0,"英语");
insert into tbl_scores values (0,1,1,90); insert into tbl_scores values (0,1,2,70); insert into tbl_scores values (0,1,3,82);
insert into tbl_scores values (0,2,1,95); insert into tbl_scores values (0,2,2,70); insert into tbl_scores values (0,2,3,84);
insert into tbl_scores values (0,3,1,85); insert into tbl_scores values (0,3,2,86); |
1 2 3 4 5 |
select s3.name,s2.subject,s1.score from tbl_scores as s1
inner join tbl_sub as s2 on s1.sub_id = s2.id
inner join tbl_stu as s3 on s1.sub_id = s3.id; |
1 2 3 4 5 |
select s3.name,avg(s1.score) from tbl_scores as s1
inner join tbl_stu as s3 on s1.sub_id = s3.id
group by s3.name; |
1 2 3 4 5 |
select s3.name,sum(s1.score) as s from tbl_scores as s1
inner join tbl_stu as s3 on s1.stu_id = s3.id
group by s3.name order by s desc; |