mysql外键的示例分析
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章将为大家详细讲解有关mysql外键的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:因为有foreign key的约束,使得两张表形成了三种
千家信息网最后更新 2025年11月16日mysql外键的示例分析
这篇文章将为大家详细讲解有关mysql外键的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体如下:
因为有foreign key的约束,使得两张表形成了三种了关系:
多对一
多对多
一对一
一对多或多对一

多对一
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;关于"mysql外键的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
出版社
出版
博客
宝典
神功
葵花
葵花宝典
九阳
用户
独孤
一对一
作者
白骨
知识
篇文章
九阴真经
用户表
关联
查询
示例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术与设备的求职信
数据库自增列怎么设置起始id
学生网络安全事故应急预案
redir 云服务器
方舟手游服务器缺管理
无线城市 网络安全
苏州专业软件开发团队
软件开发与测试试题
无法接收到服务器是什么意思
台州物流软件开发设计
建设项目成本数据库
云服务器安装linux
嘉定区即时网络技术优势
惠州计算机网络技术学费多少
物理系外文数据库名称
海南开放政府数据库
建材共享店铺系统软件开发
华为网络技术学院官网
英特尔服务器cpu铜牌银牌
绿园区机械网络安全常见问题
上海c语言软件开发靠谱吗
dede数据库用户
软件开发售后保障
标准网络技术服务经验丰富
杭州帮你做网络技术有限公司
2018年金融行业网络安全
长江三角网络安全
云服务器 个人网站
矿业网络安全宣传
安徽省网络安全宣传活动