当前位置: 首页 > news >正文

[MySql] 多表关系, 多表查询

一. 多表关系

1.1 一对多

例如: 员工 - 部门表 (一个部门可以有多个员工)
并且在多的一方增加一个字段关联一的一方的主键.

外键约束:

  • 物理外键 (使用 foreign key 定义外键关联另一张表的主键)
    • 缺点: 影响增删改效率; 仅用于单节点, 不适用与集群; 易引发死锁, 性能低;
    • 在这里插入图片描述

- 逻辑外键 (不再使用foreign key, 推荐)
- 在这里插入图片描述

1.2 一对一

例如: 公民信息与身份证 (一个公民只有一张身份证)
依旧使用逻辑外键:

  • 在这里插入图片描述

1.3 多对多

例如: 课程与学生 (一个课程被多个学生选择, 一个学生选择多个课程)

创建第三张表:

  • 在这里插入图片描述

二. 多表查询

2.1 内连接

两张表的交集.
在这里插入图片描述

内连接:

  • 隐式内连接

    • 在这里插入图片描述
  • 显式内连接

    • 在这里插入图片描述

2.2 外连接

外连接:

  • 全外连接

    • 在这里插入图片描述
    • 在这里插入图片描述
  • 左外连接

    • 在这里插入图片描述

    • 在这里插入图片描述

  • 右外连接

    • 在这里插入图片描述

    • 在这里插入图片描述

2.3 子查询

子查询:

  • 标量子查询
  • 行子查询 (“()”)
  • 列子查询 (in)
  • 表子查询 (group by, 表联合查询)

参照我之前写的这篇文章: Mysql(二) - 约束, 进阶查询

http://www.dtcms.com/a/103371.html

相关文章:

  • 消息中心系统架构设计
  • 14 配置Hadoop集群-配置历史和日志服务
  • Zemax与Matlab交互:双胶合优化详细流程
  • Qt图形化界面为何总被“冷落“?
  • IPv6协议
  • STM32 ADC转换完成回调函数详解 HAL_ADC_ConvCpltCallback与HAL_ADC_ConvHalfCpltCallback
  • 轮胎厂相关笔记
  • Rancher2.8.5架构
  • 如何把数据从SQLite迁移到PostgreSQL
  • c++ primer 阅读手记 第七章
  • 【蓝桥杯】 枚举和模拟练习题
  • 统一语言学习范式
  • 企业级海外网络专线行业应用案例及服务商推荐
  • element-ui图片查看器
  • idea导入tomcat的jar
  • 算法学习11——滑动窗口——最大连续1的个数
  • 兼职网|基于Java+vue的兼职网系统(源码+数据库+文档)
  • 交换机、路由器、VLAN、单臂路由、三层交换、STP
  • python学习笔记(6)运算符
  • 蓝桥杯—日期遍历
  • 1. 两数之和
  • 美颜SDK兼容性挑战:如何让美颜滤镜API适配iOS与安卓?
  • 2025宁德时代测评Verify考什么?网申测评如何通过SHL笔试|附真题线上笔试考点、高分攻略、CATL新能源科技SHL测评宁德社招题目、面试攻略、求职建议
  • 华为MPLS Virtual PN option C1(有/无RR)配置wireshark抓包分析
  • AgGridReact 禁止checkbox复选框选中(isRowSelectable)
  • uniapp实现小票打印 兼容微信小程序安卓
  • 数据结构和算法(十一)--图
  • 【开发问题记录】高德地图 Web 端开发详解:高德地图 API 最佳实践指南(安装、marker添加、逆向地理编码、实际业务案例实操)
  • 华为MPLS Virtual PN option A配置wireshark抓包分析
  • unidbg读写跟踪还原X-Gorgon