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

数据库表关系详解

一、一对多关系

特征:表A的一条记录对应表B的多条记录,表B的一条记录仅对应表A的一条记录
示例

  • 学生表(子表)
    | id | name | class_id | |-----|------|----------| |1001| 张三 | 111 | |1002| 张四 | 222 |

  • 班级表(父表)
    | id | name | |-----|---------| |111 | class1 | |222 | class2 |

操作要点

  1. 数据添加顺序:先父表(class)后子表(student)
  2. 数据删除顺序:先子表(student)后父表(class)
  3. 设计口诀:"一对多,两张表,多的表加外键"

查询案例:查找姓"张"学生的班级信息

SELECT s.id, s.name, c.name AS className
FROM student s
JOIN class c ON s.class_id = c.id
WHERE s.name LIKE '张%'


二、一对一关系

特征:表A与表B的记录严格一一对应
设计方案

  1. 唯一外键法(推荐)
    • 学生表:
      | id | name | |-----|------| |1001| 张三 |

    • 学生卡表(添加唯一约束):
      | id | name | student_id | |-----|-------|------------| |111 | card1 | 1001 |

查询案例:查询张三的学生卡信息

SELECT * 
FROM card c
JOIN student s ON c.student_id = s.id
WHERE s.name = '张三'


三、多对多关系

特征:表A与表B的记录可相互对应多条
示例

  • 学生表
    | id | name | |-----|------| |1001| 张三 |

  • 课程表
    | id | name | |-----|-------| |111 | Java |

  • 关系表(核心组件)
    | student_id | course_id | |------------|-----------| |1001 |111 |

操作要点

  1. 数据添加顺序:先父表(student/course)后关系表
  2. 数据删除顺序:先关系表后父表
  3. 设计口诀:"多对多,三张表,关系表加外键"

查询案例:查找姓"张"学生选修的课程

SELECT s.id, s.name, c.name
FROM student s
JOIN student_course_relation scr ON scr.student_id = s.id
JOIN course c ON scr.course_id = c.id
WHERE s.name LIKE '张%'


关键总结

  1. 关系判断:明确表间关系是编写正确SQL的前提
  2. 操作顺序
    • 一对多:父表先增后删
    • 多对多:关系表最后操作
  3. 设计口诀
    • 一对多:两张表,多表加外键
    • 多对多:三张表,关系表存外键

相关文章:

  • Python实例题:Python实现简单画板
  • 建筑资料员考试主要考什么
  • 谷歌2025年I/O开发者大会热点总结
  • 欧拉系统安装,配置静态ip
  • SAP-ABAP:ABAP异常处理与安全工程的融合 —— 构建防注入、防泄漏、合规审计的防御性编程体系
  • SID103S/D/Q-300nA,轨至轨 CMOS 运算放大器,替代SGM8141/2/4,TP2111
  • AI应用电商篇汇总(持续补充)
  • 使用Redis的Bitmap实现了签到功能
  • RT_Thread——快速入门
  • 逆向音乐APP:Python爬虫获取音乐榜单 (1)
  • SQL语句-常用版
  • OpenCV CUDA模块图像过滤------创建一个盒式滤波器(Box Filter)函数createBoxFilter()
  • 从零开始的嵌入式学习day25
  • 时间序列预测的迁移学习
  • 学习黑客了解5分钟了解中间人攻击(MITM)
  • Redis面试题全面解析:从基础到底层实现
  • vLLM v1源码阅读 : 整体流程梳理(详细debug)
  • CAU人工智能class3 优化器
  • java 集合总结
  • 【Vue3】Vue3工程的创建 及 开发者工具的安装
  • 自己怎么开网站做销售/发表文章的平台有哪些
  • wordpress 博客同步/站内优化
  • php网站开发案例教程 dvd/关键词搜索指数
  • wordpress页面模板链接/电池优化大师下载
  • 建设网站/怎么下载有风险的软件
  • 企业官网网站建设免费/网站ip查询站长工具