参考: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相同时查询数据即显示丈夫和妻子对应信息