千家信息网

mysql外键的关系有哪些

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,mysql外键的关系有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。多对一create table press(id
千家信息网最后更新 2025年11月09日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;

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

出版社 出版 博客 宝典 神功 葵花 葵花宝典 九阳 用户 独孤 作者 白骨 知识 九阴真经 用户表 关联 查询 不好 产权 人民 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全应急中心工资 网络安全意识教育培训题库 ibm 服务器2007 年 服务器发现安全后门 服务器积分满了咋办 steam优质服务器 数据库开发试题及答案 高安云畅互联网络科技有限公司 服务器加工内存条 光钎宽带网络技术论坛 网络安全相关支出包括哪些 南昆士兰大学网络安全硕士 网络安全能考的事业编制 想要做软件开发需要哪些技能 青少年网络安全观后感150 网络安全主题教育手抄报图片 郧阳区正规软件开发统计 哪些单位招收网络安全员 网络安全 数据泄露 图形数据库用法 未来之翼服务器tike值 人工神经网络技术原理图 河北正规软件开发大概要多少钱 计算机网络技术和计算机应用技术有什么区别 网络安全产业的指导意见 少儿网络安全手抄报 成都红叶网络技术有限公司 如何查询网页数据库 网络服务器和微机硬盘的区别 新能源网络技术批发价格
0