我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql外键的关系有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql外键的关系有哪些

mysql外键的关系有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  多对一

  create table press(

  id int primary key auto_increment,

  name varchar(20)

  );

  create table book(

  id int primary key auto_increment,

  name varchar(20),

  press_id int not null,

  constraint fk_book_press foreign key(press_id) references press(id)

  on delete cascade

  on update cascade

  );

  # 先往被关联表中插入记录

  insert into press(name) values

  ('北京工业地雷出版社'),

  ('人民音乐不好听出版社'),

  ('知识产权没有用出版社')

  ;

  # 再往关联表中插入记录

  insert into book(name,press_id) values

  ('九阳神功',1),

  ('九阴真经',2),

  ('九阴白骨爪',2),

  ('独孤九剑',3),

  ('降龙十巴掌',2),

  ('葵花宝典',3)

  ;

  查询结果:

  mysql> select * from book;

  +----+-----------------+----------+

  | id | name | press_id |

  +----+-----------------+----------+

  | 1 | 九阳神功 | 1 |

  | 2 | 九阴真经 | 2 |

  | 3 | 九阴白骨爪 | 2 |

  | 4 | 独孤九剑 | 3 |

  | 5 | 降龙十巴掌 | 2 |

  | 6 | 葵花宝典 | 3 |

  +----+-----------------+----------+

  rows in set (0.00 sec)

  mysql> select * from press;

  +----+--------------------------------+

  | id | name |

  +----+--------------------------------+

  | 1 | 北京工业地雷出版社 |

  | 2 | 人民音乐不好听出版社 |

  | 3 | 知识产权没有用出版社 |

  +----+--------------------------------+

  rows in set (0.00 sec)

  多对多

  # 创建被关联表author表,之前的book表在讲多对一的关系已创建

  create table author(

  id int primary key auto_increment,

  name varchar(20)

  );

  #这张表就存放了author表和book表的关系,即查询二者的关系查这表就可以了

  create table author2book(

  id int not null unique auto_increment,

  author_id int not null,

  book_id int not null,

  constraint fk_author foreign key(author_id) references author(id)

  on delete cascade

  on update cascade,

  constraint fk_book foreign key(book_id) references book(id)

  on delete cascade

  on update cascade,

  primary key(author_id,book_id)

  );

  #插入四个作者,id依次排开

  insert into author(name) values('egon'),('alex'),('wusir'),('yuanhao');

  # 每个作者的代表作

  egon: 九阳神功、九阴真经、九阴白骨爪、独孤九剑、降龙十巴掌、葵花宝典

  alex: 九阳神功、葵花宝典

  wusir:独孤九剑、降龙十巴掌、葵花宝典

  yuanhao:九阳神功

  # 在author2book表中插入相应的数据

  insert into author2book(author_id,book_id) values

  (1,1),

  (1,2),

  (1,3),

  (1,4),

  (1,5),

  (1,6),

  (2,1),

  (2,6),

  (3,4),

  (3,5),

  (3,6),

  (4,1)

  ;

  # 现在就可以查author2book对应的作者和书的关系了

  mysql> select * from author2book;

  +----+-----------+---------+

  | id | author_id | book_id |

  +----+-----------+---------+

  | 1 | 1 | 1 |

  | 2 | 1 | 2 |

  | 3 | 1 | 3 |

  | 4 | 1 | 4 |

  | 5 | 1 | 5 |

  | 6 | 1 | 6 |

  | 7 | 2 | 1 |

  | 8 | 2 | 6 |

  | 9 | 3 | 4 |

  | 10 | 3 | 5 |

  | 11 | 3 | 6 |

  | 12 | 4 | 1 |

  +----+-----------+---------+

  rows in set (0.00 sec)

  一对一

  #例如: 一个用户只能注册一个博客

  #两张表: 用户表 (user)和 博客表(blog)

  # 创建用户表

  create table user(

  id int primary key auto_increment,

  name varchar(20)

  );

  # 创建博客表

  create table blog(

  id int primary key auto_increment,

  url varchar(100),

  user_id int unique,

  constraint fk_user foreign key(user_id) references user(id)

  on delete cascade

  on update cascade

  );

  #插入用户表中的记录

  insert into user(name) values

  ('alex'),

  ('wusir'),

  ('egon'),

  ('xiaoma')

  ;

  # 插入博客表的记录

  insert into blog(url,user_id) values

  ('http://www.cnblog/alex',1),

  ('http://www.cnblog/wusir',2),

  ('http://www.cnblog/egon',3),

  ('http://www.cnblog/xiaoma',4)

  ;

  # 查询wusir的博客地址

  select url from blog where user_id=2;

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql外键的关系有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql-外键的三种关系

介绍因为有foreign key的约束,使得两张表形成了三种了关系:多对一多对多一对一重点理解如果找出两张表之间的关系分析步骤:#1、先站在左表的角度去找是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreignk
2023-01-30

MySQL外键约束的作用有哪些

MySQL外键约束的作用有以下几个:1. 保持数据的一致性:外键约束可以确保在关联表之间的数据一致性。它可以防止插入或更新表中的数据时引入无效或不一致的引用。2. 防止删除或修改关联数据:外键约束可以防止意外删除或修改关联数据。如果试图删除
2023-10-23

Mysql添加外键的方式有哪些

本篇内容介绍了“Mysql添加外键的方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mysql添加外键的几种方式注意:添加外键是给从
2023-07-05

MySQL添加外键的方法有哪些

MySQL添加外键的方法有以下几种:在创建表时添加外键约束:可以在创建表时,使用FOREIGN KEY关键字来添加外键约束。例如:CREATE TABLE 表名 (列名 数据类型,列名 数据类型,FOREIGN KEY (外键列名) RE
MySQL添加外键的方法有哪些
2024-04-09

MySQL不能添加外键的原因有哪些

MySQL不能添加外键的原因可能有以下几种:数据类型不匹配:外键引用的列和参考列的数据类型不一致,如长度不一致、类型不一致等。索引问题:外键引用的列或参考列没有建立索引,或者索引不满足某些条件。值不匹配:外键引用的列包含有不符合参考列要求的
MySQL不能添加外键的原因有哪些
2024-04-09

MySQL之外键、表关系及SQL查询关键字

一、外键假设现在我们有一张员工信息表,表的字段如下:id # 主键name # 姓名age # 年龄dep_name # 部门名称dep_desc # 部门描述单从数据存储上来看,这个表是没有问题的,但是从程序开发角度来看的话,这张表目前有如下三个缺
MySQL之外键、表关系及SQL查询关键字
2018-09-24

MySQL使用外键约束的好处有哪些

MySQL使用外键约束可以带来以下好处:1. 数据完整性:外键约束可以确保数据的完整性和一致性。它可以防止无效的数据插入或更新,以及不符合关联规则的数据操作。2. 数据一致性:使用外键约束可以确保关联表中的数据保持一致。它可以防止不一致的数
2023-10-12

mysql设置外键失效的原因有哪些

MySQL设置外键失效的原因有以下几种:1. 数据类型不匹配:外键字段和参照字段的数据类型不一致,如外键字段是int类型,而参照字段是varchar类型。2. 字段名不匹配:外键字段和参照字段的字段名不一致。3. 表引擎不支持外键约束:My
2023-10-12

MySQL必须了解的关键字有哪些

本篇内容主要讲解“MySQL必须了解的关键字有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL必须了解的关键字有哪些”吧!1、三范式第一范式:每个表的每一列都要保持它的原子性,也就是
2022-12-08

MySQL 外键约束和表关系相关总结

目录外键(Foreign Key)如何确定表关系如何建立表关系一对多关系 - 员工表和部门表多对多一对一表关系总结外键(Foreign Key)按照上述所说,一张表存储员工信息会极大的浪费资源,重复数据太多,这个问题就类似于将所有的代码都写
2022-05-18

编程热搜

目录