写个学生表(主表)和成绩表(从表),他们之间的关系是一对多,在从表中创建个字段并把它指定为外键与主表中的主键关联起来。
创建学生表
create table student(
id int primary key auto_increment,
sname varchar(10) not null,
);
insert into student(sname) values('王双');
insert into student(sname) values('邢道荣');
insert into student(sname) values('张飞');
insert into student(sname) values('曹真');
结果如下
创建成绩表
create table achievement(
id int primary key auto_increment,
achi_subject varchar(10) not null,
achi_score double not null
);
insert into achievement (achi_subject,achi_score) values('高数',82);
insert into achievement (achi_subject,achi_score) values('英语',92);
insert into achievement (achi_subject,achi_score) values('C语言',42);
insert into achievement (achi_subject,achi_score) values('java',56);
结果如下
在成绩表中添加外键,也就是在多的那方添加字段指向一的那方的某一个字段(主表)
alter table achievement add foreign KEY(a_id) references student(id)
这个a_id就和student表中id关联起来了
查询语法
select student.sname,achievement.achi_subject,achievement.achi_score
from achievement
inner join student on student.id=achievement.a_id
多对多的关系
一对一的关系