小小小幸运 发表于 2024-7-11 18:12:18

MySQL多表创建关联及操纵

表与表之间的关系
表语表之间的关系,说的就是表与表数据之间的关系。
一对多的关系

常见的实例:客户和订单,分类和商品,部分和员工。
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表的主键。
alter table 从表 add [外键名称] foreign key(从表外键在字段名) references 主表(主表的主键);
https://img-blog.csdnimg.cn/img_convert/d7496191e1aa194ef14257a6cd2d0584.png
多对多的关系

常见的实例:学生和课程,商品和订单,演员和角色。
多对多关系建立表原则:必要创建第三张表,中央表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
https://img-blog.csdnimg.cn/img_convert/056116d8bcd8704ed4003aee48470770.png
https://img-blog.csdnimg.cn/img_convert/c64d879f951782ecf0084309221ffb3a.png
建立关系
alter table stu_course add foreign key(sno) references stu(sid);
alter table stu_course add foreign key(sno) references course(cid);
一对一关系(了解)

在现实开发中应用不多,因为一对一可以创建成一张表。
两种建表原则:
外键唯一:主表的主键和从简的外键唯一,形成主外键关系,外键唯一 unique。
外键是主键:主表的主键和从表的主键,形成主外键关系。
https://img-blog.csdnimg.cn/img_convert/56d371e2413e44a08f3f743a36655daf.png
多对多连接

实现如下表结构:
https://img-blog.csdnimg.cn/img_convert/f8fc92f4fd5be48f1119dbf8972e714d.png
创建订单表
create table orders(
oid varchar(32) primary key,
totalprice double
);
https://img-blog.csdnimg.cn/img_convert/b401050312257cc66e466a149587673c.png
创建经单项的表(中央表)
create table orderitem(
oid varchar(50),
pid varchar(50)
);
https://img-blog.csdnimg.cn/img_convert/68f6a5d4bbd763e20311be9abd56140f.png
关联两张表
alter table orderitem add constraint orderitem_fk foreign key(oid) references orders(oid);
https://img-blog.csdnimg.cn/img_convert/e8d07a62ff4f75a30de6e592851b6bfd.png
alter table orderitem add constraint orderitem1_fk foreign key(pid) references product(pid);
https://img-blog.csdnimg.cn/img_convert/14ebaf67257a99e15d93ad2696acef64.png
多表查询操纵
1. 交叉连接查询(基本不会用到 - 得到的是两个表的乘积)

select * from A,B
select * from category,product;
https://img-blog.csdnimg.cn/img_convert/fb6e5dc138dc004877935bffeffeeea6.png
内容是乱的!第一张表3条数据,第二张表9条数据,一共 3*9 = 27 条数据。
2. 内连接查询(利用关键字 inner join   – inner可以省略)

隐式内连接
select * from A,B where 条件
select * from category c,product p where c.cid = p.category_id;
https://img-blog.csdnimg.cn/img_convert/245ae1ab51f27eecf6cfc58a4240ac89.png
显式内连接
select * from A inner join B on 条件
select * from category inner join product on cid=category_id;
https://img-blog.csdnimg.cn/img_convert/859a9934edd1aadc874959d6bb66b64d.png
select * from category join product on cid=category_id;
https://img-blog.csdnimg.cn/img_convert/2dea13e043f2690e01e3f67c4208785a.png
3. 外连接查询(利用关键字 outer join   --outer可以省略)

左外连接:left outer join
select * from A left outer join B on 条件
select * from category left join product on cid=category_id;
https://img-blog.csdnimg.cn/img_convert/c4181272bc2cb8ec044a35529d30bee8.png
右外连接 right outer join
select * from A right outer join B on 条件;
select * from category right join product on cid=category_id;
https://img-blog.csdnimg.cn/img_convert/b19f989a9925e293011e1c137f1c2cd3.png
左右连接的区别:
左连接:左边的数据全部查出来。category数据全部出来。
先自我先容一下,小编13年上海交大结业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里不停到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《Java开发全套学习资料》送给各人,初衷也很简朴,就是希望可以或许资助到想自学提升又不知道该从何学起的朋友,同时减轻各人的负担。
https://img-blog.csdnimg.cn/img_convert/21433a062e822e6561015dabe4dad60c.jpeg
https://img-blog.csdnimg.cn/img_convert/4831f12f8394c55b3ebecd119dad4482.png
https://img-blog.csdnimg.cn/img_convert/d528c0cd00498b5fc5e076261704341b.png
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包罗大厂面经、学习笔记、源码讲义、实战项目、解说视频
如果你以为这些内容对你有资助,可以扫码领取!
https://img-blog.csdnimg.cn/img_convert/79950cffc5244b1256bbb45b5df45ed9.jpeg Kafka进阶篇知识点

https://img-blog.csdnimg.cn/img_convert/6ee6c2632d2daddc71dbeb8ceec5b9db.webp?x-oss-process=image/format,png
Kafka高级篇知识点
https://img-blog.csdnimg.cn/img_convert/abe623cda30526588a7ded8699a9e85a.webp?x-oss-process=image/format,png
44个Kafka知识点(底子+进阶+高级)解析如下
https://img-blog.csdnimg.cn/img_convert/b8aaba09e6347249161fec9ce5c4793f.webp?x-oss-process=image/format,png
由于篇幅有限,小编已将上面先容的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(底子+进阶+高级)都整理成册,全部都是PDF文档**
36.jpg" alt=“img” style=“zoom: 33%;” />
Kafka进阶篇知识点

[外链图片转存中…(img-Eic7JjJV-1711404739320)]
Kafka高级篇知识点
[外链图片转存中…(img-ZnRkbcku-1711404739321)]
44个Kafka知识点(底子+进阶+高级)解析如下
[外链图片转存中…(img-IJF8itja-1711404739321)]
由于篇幅有限,小编已将上面先容的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(底子+进阶+高级)都整理成册,全部都是PDF文档**
必要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: MySQL多表创建关联及操纵