首页 > 数据库技术 > 详细

MySQL多表操作(一对一 一对多 多对多)

时间:2021-01-24 01:15:27      阅读:29      评论:0      收藏:0      [点我收藏+]

  参考:https://blog.csdn.net/zuosixiaonengshou/article/details/53011452

  一,1对1

  1方建主表(id为主键字段), 一方或多方建外键字段(参考主表的主键id,加unique)

  示例:一个女人(woman)对应一个丈夫(man)不能对应多个丈夫,一个丈夫也不能对应多个女人,妻子

  创建man表(建表前创建一个test库)

mysql> create table man(
 id varchar(32) primary key , 
name varchar(30) 
);

   创建woman表

mysql> create table woman( 
id varchar(32) primary key , 
name varchar(30), 
husband varchar(32) unique, 
constraint wm_fk foreign key(husband) references man(id) 
);

   建表语句解析

unique # 设置约束 才是1对1否则为1对多
constraint wm_fk foreign key(husband) references man(id) #创建外键名为wm_fk 本表字段husband关联表man的id字段

   查看建表语句

技术分享图片

 

   一一对应关系

技术分享图片

 

   插入数据

  首先插入3个男人

mysql> insert into man values(‘1‘, ‘小明‘);
Query OK, 1 row affected (0.00 sec)

mysql> insert into man values(‘2‘, ‘小聪‘);
Query OK, 1 row affected (0.01 sec)

mysql> insert into man values(‘3‘, ‘老王‘);
Query OK, 1 row affected (0.00 sec)

 技术分享图片

 

   插入女人并设置对应丈夫关系

mysql> insert into woman values(‘1‘, ‘小花‘, 2);
Query OK, 1 row affected (0.00 sec)

mysql> insert into woman values(‘2‘, ‘小静‘, 1);
Query OK, 1 row affected (0.00 sec)

   以下插入报错

技术分享图片

 

   husband可以为空代表为单身狗

mysql> insert into woman values(‘3‘, ‘小红‘, null);

   查看数据

 

技术分享图片

   查询夫妻信息

mysql> SELECT man.name AS 丈夫, woman.name AS 妻子 FROM man INNER JOIN woman ON man.id=woman.husband;

   当man.id和woman.huaband相同时查询数据即显示丈夫和妻子对应信息

技术分享图片

 

 

  

MySQL多表操作(一对一 一对多 多对多)

原文:https://www.cnblogs.com/minseo/p/14318464.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!