网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

这篇文章主要介绍了MySQL 创建三张关系表实操,文章说先创建学生表然后科目表和分数表三张有着密切关系的表,下文实操分享需要的小伙伴可以参考一下

 

1.创建学生表

create table tbl_stu (
id int not null primary key auto_increment,

name varchar(45) not null

)engine=innodb default charset=utf8;

2.创建科目表

create table tbl_sub (
id int not null primary key auto_increment,
subject varchar(45) not null
)engine=innodb default charset=utf8;

3.创建分数表

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)
);

4.插入数据

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);


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;

6.查询学生的平均分

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;

 

7.总分排行榜

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;

 


评论 0

暂无评论
0
0
0
立即
投稿
发表
评论
返回
顶部