本文整理自网络,侵删。
目录
- 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 创建关系表内容请搜索
更多Mysql内容来自木庄网络博客
标签:Mysql
相关阅读 >>
如何通过mysql查看与修改auto_increment的方法
更多相关阅读请进入《mysql》频道 >>
数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » MySQL 创建三张关系表实操
标签:mysql
相关推荐
评论
管理员已关闭评论功能...