MySQL关联关系之多对一的创建
多对一关系在关联关系中是很常见的,就比如:
一个班级对应着多个学生,一个学生只对应一个班级。
一张银行卡对应一个人,一个人对应多张银行卡。
一瓶水对应一个人,一个人可以对应多瓶水…………
…………
想要用MySQL语句创建多对一关系的话一定要弄清楚外键创在哪一方。
一般都是将外键创在多的一方,以免数据冗余。
首先创建一个班级数据库表
create table class(
cid int(10) not null primary key,
cname varchar(20)
);
然后创建一个学生数据库表
create table student(
sid int(10) not null primary key,
sname varchar(20),
classid int(10) not null
);
创建外键
alter table student add constraint fk_student_classid foreign key(classid) references class(cid);
至此就完成了对MySQL的多对一的关联关系的创建。
添加数据
insert into class value(1,'一班'),(2,'二班');
insert into student value(1,'学生1',1),(2,'学生2',1),(3,'学生3',2),(4,'学生4',2);
查询
mysql> select class.cname,student.sname from class inner join student on class.cid=student.classid;
+-------+-------+
| cname | sname |
+-------+-------+
| 一班 | 学生1 |
| 一班 | 学生2 |
| 二班 | 学生3 |
| 二班 | 学生4 |
+-------+-------+
4 rows in set (0.00 sec)