MySQL 创建三张关系表实 ***

MySQL 创建三张关系表实 *** ,第1张

MySQL 创建三张关系表实 *** 目录
  • 1.创建学生表
  • 2.创建科目表
  • 3.创建分数表
  • 4.插入数据
  • 5.查询全部分数
  • 6.查询学生的平均分
  • 7.总分排行榜

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;

到此这篇关于MySQL 创建三张关系表实 *** 的文章就介绍到这了,更多相关MySQL 创建关系表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/2997162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存