MySQL关联关系之多对一关系的创建与查询

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)
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页