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

数据库基础--多表关系,多表查询

前言:

本篇是学习Javaweb的一个学习笔记(黑马web开发),数据库能帮助我们组织和管理网站应用产生的数据,因此我们要好好了解数据库的操作和使用。

多表关系:

一对多:

概念:
一对多关系就像他文字表述的一样,指的是一个实体(表)中的单个记录可以关联到另一个实体(表)中的一个或多个记录,(比如:一个部门可以拥有多个员工,但每个员工只能属于一个部门。“部门”表和“员工”表之间形成了一对多的关系)我们通常用外键来实现。

实现:

外键分为两种:物理外键和逻辑外键

  • 物理外键
    先来看看实现代码:
-- 基本结构
-- 创建表时指定
create table 表名(字段名    数据类型,...[constraint]   [外键名称]  foreign  key (外键字段名)   references   主表 (主表列名)        
);-- 建完表后,添加外键
alter table  表名  add constraint  外键名称  foreign key(外键字段名) references 主表(主表列名);--实例:
-- 添加外键约束
-- emp(员工表),demp(部门表)一个部门对应多个员工
alter table emp  add  constraint  fk_dept_id  foreign key (dept_id)  references  dept(id);
  • 概念:使用foreign key定义外键关联另外一张表。

  • 缺点:

    • 影响增、删、改的效率(需要检查外键关系)。
    • 仅用于单节点数据库,不适用于分布式、集群场景。
    • 容易引发数据库的死锁问题,消耗性能。
  • 逻辑外键

    • 概念:在业务层逻辑中,解决外键关联。
    • 通过逻辑外键,就可以很方便的解决上述问题。

注意:在现在的企业开发中,很少会使用物理外键,都是使用逻辑外键。 甚至在一些数据库开发规范中,会明确指出禁止使用物理外键 foreign key

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

相关文章:

  • 中小型企业ERP实施成本高?析客ERP系统独立部署+模块化配置的务实解决方案
  • ENET_GetRxFrame vs ENET_ReadFrame
  • MySQL 正则表达式详细说明
  • AI摄像头动捕:让动作分析更自由、更智能、更高效
  • 刚刚,GPT-5 炸裂登场!可免费使用
  • Word中怎样插入特殊符号
  • seo-使用nuxt定义页面标题和meta等信息
  • 11_Mybatis 是如何进行DO类和数据库字段的映射的?
  • HTTP/HTTPS代理,支持RSA和SM2算法
  • 消防通道占用识别误报率↓79%:陌讯动态区域感知算法实战解析
  • 自签名证书实现HTTPS协议
  • 17.14 CogVLM-17B多模态模型爆肝部署:4-bit量化+1120px高清输入,A100实战避坑指南
  • 登上Nature子刊,深度学习正逐渐接管基础模型
  • NY128NY133美光固态闪存NY139NY143
  • 智驭全球波动:跨境量化交易系统2025解决方案
  • Linux系统:Ext系列文件系统(硬件篇)
  • 专题二_滑动窗口_将x减到0的最小操作数
  • Dart 单例模式:工厂构造、静态变量与懒加载
  • 频谱图学习笔记
  • python 通过Serper API联网搜索并大模型整理内容
  • 软件测试面试常见问题【含答案】
  • EtherCAT WatchDog
  • V4L2摄像头采集 + WiFi实时传输实战全流程
  • 深圳市天正达电子股份有限公司参展AUTO TECH China 2025 广州国际汽车技术展览会
  • std::transform
  • AI大模型专题:LLM大模型(Prompt提示词工程)
  • C语言实现经典扫雷游戏全解析
  • 使用观测云打造企业级监控告警中心
  • cudagraph 本质详解
  • Vue框架进阶