千家信息网

mysql外键的关系有哪些

发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,mysql外键的关系有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。多对一create table press(id
千家信息网最后更新 2025年02月21日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安全错误 数据库的锁怎样保障安全 江西惠普服务器虚拟化优化服务器 client服务器未能登录 锐捷服务器多少钱 动态图片素材软件开发 网络安全产品解绍 思科网络技术探索网络答案 我的世界数据库链接 深圳嵌入式软件开发定制 移动网络技术属于计算机专业 视易ktv点歌服务器授权费用 深圳正规的网络安全服务 计算机软件开发技术有哪些 千方百计医药管理系统数据库 网络安全公司 杭州城西银泰 学生数据库的简单查询步骤 湖北企业软件开发哪家可靠 幻塔服务器不同能一起玩吗 电脑设置网络安全选择什么 fda数据库怎么样 计算机网络技术专业潜能测试 软件开发组件图 破解服务器管理员密码 如何在数据库中新建用户 德国软件开发公司电话 数据库去除重复的语句 大连软件开发培训哪家强 千方百计医药管理系统数据库 学网络技术买什么笔记本 教师网络安全培训班 怎么共享我的世界服务器
0