mysql外键的示例分析
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章将为大家详细讲解有关mysql外键的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:因为有foreign key的约束,使得两张表形成了三种
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
初中文凭能学软件开发吗
数据网络安全公开课
云利来网络安全
软件开发大局观
网络安全交易主题手抄报
数据库添加sa用户
五华区软件开发市场报价
湘江鲲鹏服务器有芯片吗
今天大涨的网络安全股
94年第一个网络安全的是
网络安全风险评估项目管理师
测试驱动数据库开发
涉疫系统网络安全等级保护工作
嵌入式软件开发区日料文案
计算机网络安全的数据特性有
ios开发软件开发
计算机网络技术的职业情况
在线咨询如何连接数据库
软件开发 厦航
溧水有大型服务器吗
服务器采购建议
数据库结构化数据存储
山东超频服务器电源
数据库中修改非空
国家组学数据库百科全书
dell r330服务器
欧睿数据库是什么
iot数据库
手机网络安全狗
计算机网络技术难不难读