MySQL多表的关系是什么

发布时间:2021-08-03 17:09:33 作者:Leah
来源:亿速云 阅读:131

MySQL多表的关系是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

多表之间的关系

  表与表之间的关系,说的就是表与表之间数据的关系。

  一对一关系

  在实际工作中,一对一在开发中应用不多,因为一对一完全可以创建成一张表

  案例:一个丈夫只能有一个妻子

  一对多关系

  案例:一个分类对应多个商品

  总结:有外键的就是多的一方。

  1.注意事项:

  一对多关系和一对一关系的创建很类似,唯一区别就是外键不唯一。

  2.一对多关系创建:

  添加外键列

  添加外键约束

  3.注意事项:

  Ø需要中间表去完成多对多关系的创建

  Ø多对多关系其实就是两个一对多关系的组合

  多对多关系创建:

  Ø创建中间表,并在其中创建多对多关系中两张表的外键列

  Ø在中间表中添加外键约束

  Ø在中间表中添加联合主键约束

多表关联查询

  6.1

  交叉连接的关键字:CROSSJOIN

  1.隐式交叉连接

  SELECT*FROMA,B

  2.显式交叉连接

  SELECT*FROMACROSSJOINB

  内连接

  内连接的关键字:INNERJOIN

  内连接也叫等值连接,内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。

  1.隐式内连接

  SELECT*FROMA,BWHEREA.id=B.id

  2.显式内连接

  SELECT*FROMAINNERJOINBONA.id=B.id

  外连接

  外联接可以是左向外联接、右向外联接或完整外部联接。也就是说外连接又分为:左外连接、右外连接、全外连接

  外连接需要有主表或者保留表的概念。

  在FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:

  1.左外连接:LEFTJOIN或者LEFTOUTERJOIN

  SELECT*FROMALEFTJOINBONA.id=B.id

  2.右外连接::RIGHTJOIN或者RIGHTOUTERJOIN

  SELECT*FROMARIGHTJOINBONA.id=B.id

  3.全外连接(MySQL不支持):FULLJOIN或FULLOUTERJOIN

  SELECT*FROMAFULLJOINBONA.id=B.id

  外连接总结:

  l通过业务需求,分析主从表

  l如果使用LEFTJOIN,则主表在它左边

  l如果使用RIGHTJOIN,则主表在它右边

  查询结果以主表为主,从表记录匹配不到,则补null

  分页查询

  MySQL的分页关键字是:LIMIT

  格式:

  SELECT*FROMtableLIMIT[offset,]rows

  子查询

  定义:

  子查询允许把一个查询嵌套在另一个查询当中。

  子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。

  子查询可以包含普通select可以包括的任何子句,比如:distinct、groupby、orderby、limit、join和union等;

  但是对应的外部查询必须是以下语句之一:select、insert、update、delete。

  位置:

  select中、from后、where中.

  groupby和orderby中无实用意义。

MySQL事务处理

  MySQL事务主要用于处理操作量大,复杂度高的数据。

  Ø在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务。

  Ø事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。

  Ø事务用来管理DML操作,比如insert,update,delete语句

  一般来说,事务是必须满足4个条件(ACID):

  Atomicity(原子性)

  构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。

  Consistency(稳定性)

  数据库在事务执行前后状态都必须是稳定的。

  Isolation(隔离性)

  事务之间不会相互影响。

  Durability(可靠性)

  事务执行成功后必须全部写入磁盘。

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

推荐阅读:
  1. MYSQL的多表查询
  2. mysql多表联合删除

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:sharding切分是什么

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》