数据库进阶3--表之间的关联关系

article/2025/9/1 14:46:18

学习这一部分之前先去回顾一下之前的基础知识哦!!!

这里写目录标题

  • 关联关系
    • 关联关系分类
    • 关联关系的创建
    • 关联查询
      • 等值连接
      • 内连接
      • 外连接
        • 左连接
        • 右连接

关联关系

指一个业务中创建的表与表之间的关系。其关联关系有一下几种:

关联关系分类

  • 一对一:有AB两张表,A表中的一条数据对应着B表中的一条数据,同时,B表中的一条数据也只对应着A 表中的一条数据。(比如:一个男生只有一个女朋友,他女朋友也只有他一个男朋友)
    一对一
  • 一对多:有AB两张表,A表中的一条数据对应着B表中的多条数据,但是,B表中的一条数据只对应着A 表中的一条数据。(比如:一位同学一个阶段只会在一个班级,但一个班级里却有多位同学)
    一对多
  • 多对多:有AB两张表,A表中的一条数据对应着B表中的多条数据,而且,B表中的一条数据也对应着A 表中的多条数据。(比如:一个老师有多位学生,一位学生也有多个老师)
    多对多

关联关系的创建

  • 一对一:在AB两张表的任意一张表中创建一个关系字段,用于指向另一张表的主键。
  • 一对多:在“多关系”的表中创建一个关系字段,用于指向“单一关系”表中的主键。(如在员工表中创建部门id字段指向部门表的主键)
  • 多对多:需要单独创建一个关系表用于保存两张表的关系,该关系表只有两个字段,分别指向两个表的主键。

关联查询

查询具有关联关系的表中的数据信息。其查询方式有一下几种:

等值连接

查询两张表的交集部分。
格式:select 字段名 from A表,B表 where 关联关系 and 查询条件。

//查询工资高于2000的员工的姓名和对应的部门名
select emp.name,dept.name from emp,dept where emp.dept_id=dept.id and  sal>2000;
//查询程序员和销售的姓名,工资,部门名,部门地点
select emp.name,sal,dept.name,loc from emp,dept where emp.dept_id=dept.id and job in("程序员","销售");

内连接

查询两张表的交集部分,和等值连接一样,但相同条件下推荐使用内连接。
格式:select 字段名 from A表 join B表 on 关联关系 where 条件

//查询工资高于2000的员工的姓名和对应的部门名
select emp.name,dept.name from emp join dept on emp.dept_id=dept.id where sal>2000;
//查询程序员和销售的姓名,工资,部门名,部门地点
select emp.name,sal,dept.name,loc from emp join dept on emp.dept_id=dept.id where job in("程序员","销售");

外连接

查询一张表的全部信息及两张表的交集部分。

左连接

格式: select 字段名 from A表 left join B表 on 关联关系 where 其它条件;
查询join之前的表(左边表)的全部信息及两张表的交集部分

//查询所有员工姓名和对应的部门名
select emp.name,dept.name from emp left join dept on emp.dept_id=dept.id ;

右连接

格式: select 字段名 from A表 right join B表 on 关联关系 where 其它条件;
查询join之后的表(右边表)的全部信息及两张表的交集部分

//查询所有部门名和地址以及员工的姓名
select emp.name,dept.name,loc from emp right join dept on emp.dept_id=dept.id;

结束啦!多练习,多测试。。。。。


http://chatgpt.dhexx.cn/article/D4QwSYb1.shtml

相关文章

小感悟:多对多关系,一定要创建关系表吗?

- 感悟:多对多关系,一定要创建关系表吗? 初学数据库时,如果出现多对多关系,那么就需要额外创建一个关系表,将两边的外键存入,以此建立连接; 但是遇到多对多关系,一定需…

关系推理

知识图谱 知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(“实体”)和边(“关系”)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“…

【数据库专题】智多星带你五分钟攻略“关系代数”——《狗叫江湖》第二幕续集

、 “百分百无规则教学时间!🔥🔥🔥” 兄弟萌晚上好!我是无规则教学创始人【东星耀杨】,感谢兄弟萌对我的不离不弃,爱你们熬爱你们!还望兄弟萌给为师一个三连支持,要不然我…

互联网人的职场关系攻略

本篇文章原本是给公司校招新人的做的一个内部培训ppt(需要的可以找我),作为一名技术人员,真是不太擅长处理职场关系,但身在职场,估计都能感到其重要性,要想愉快恰饭,万万不可忽视,为了防止误导新…

vue 生命周期详解 (附代码)

一、 vue的生命周期是什么 vue每个组件都是独立的,都有自己的生命周期,从一个组件创建、数据初始化、挂载、更新、销毁,就是一个组件的生命周期。 一个组件首次加载时,也就只执行 创建、数据初始化到挂载。 生命周期给了用户在…

详解vue生命周期(常问面试题)

面试常问:1、vue生命周期是什么? Vue 实例从创建到销毁的过程为生命周期。从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,称之为 Vue 的生命周期。 2、vue生命周期的作用是什么? 在控制整个…

Vue学习 — 详解Vue生命周期

目录 一、前言二、生命周期1、beforeCreat / created(1)、beforeCreat:(2)、created: 2、eforeMount / mounted(1)、beforeMount:(2)、mounted: 3、beforeUpd…

Vue生命周期详解学习笔记

生命周期 生命周期又名生命周期回调函数,生命周期函数,生命周期钩子。生命周期是Vue在关键时刻帮我们调用的一些特殊名称的函数。生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。生命周期中的this指向vm或组件实例对象…

Vue的生命周期详解,一文带你弄懂Vue的生命周期

大家好,我是Ned👀,一个刚刚入门前端未满两年的大三小学生🌹 未来路还长🎉, 一起努力加油吧❤~ 前言 我记得尤大曾经说过,你看Vue源码干嘛?你使用Vue又不需要它的源码,你只需要会用就…

Vue系列之vue生命周期详解

文章の目录 1、什么是 vue 生命周期2、生命周期钩子函数2.1、beforeCreate(创建前)2.2、created(创建后)2.3、beforeMount(挂载前)2.4、mounted(挂载后)2.5、beforeUpdate&#xff0…

Vue的生命周期详解(简单易懂)

一、定义 Vue的生命周期就是实例从创建到销毁的一个过程,即从创建、初始化数据、编译模板、挂载Dom->渲染、更新->渲染,卸载等一系列的过程。 写代码时注意: Vue的生命周期钩子函数会自动绑定this上下文到实例中,这意味着…

【Vue】 Vue生命周期详解

每一个vue实例从创建到销毁的过程,就是这个vue实例的生命周期。在这个过程中,它经历了从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。 通过这张流程图已经可以清晰的看到Vue整个生命周期的过程 beforeCreate( 创建前…

Vue极简教程,生命周期详解

Vue | 渐进式 | JS框架 | 极简教程 生命周期详解

vue实例的生命周期详解

Vue实例的生命周期 简介 此篇文章说的是最简单的单个VUE组件的生命周期。 官网中的长图诠释了Vue实例从创建,运行到销毁的整个过程。从vue实例的创建,运行,销毁期间,总是伴随着各种各样的事件,这些事件统称为生命周期…

【Vue生命周期详解】

细谈Vue声明周期 什么是生命周期?Vue的生命周期beforeCreate( 创建前 ):created ( 创建后 ):beforeMount:mounted:beforeUpdate:updated:beforeDestroy:destroyed&#x…

VUE的十一个生命周期详解

生命周期可以分为三个阶段: 挂载阶段 更新阶段 销毁阶段 创建前:beforeCreate() 无法获取data数据 创建后:created() 可以获取data数据和操作methods 但不能使用DOM 挂载前:beforeMount() 挂载后:mounted() …

Vue生命周期和钩子函数详解

Vue生命周期和钩子函数详解 Vue生命周期介绍: 组件每个阶段它的内部构造是不一样的,所以一般特定的钩子做特定的事,比如Ajax获取数据就可以在mounted阶段。从Vue实例被创建开始到该实例最终被销毁的整个过程叫做VUE的生命周期,在…

vue生命周期详解(一)----创建期间的生命周期函数

文章目录 vue生命周期一、beforeCreate1.在beforeCreate函数里面调用data里面的属性2.在beforeCreate钩子函数里面调用methods里面的方法 二、created生命周期钩子函数1.在created钩子函数里面调用methods里面的方法和data里面的属性 三、beforeMount和mountedbeforeMount生命周…

Vue中组件生命周期过程详解

一、什么是生命周期? Vue中的生命周期是指:组件从创建到销毁的一个过程,在这过程中,我们在每个特定阶段会触发一些方法(这些方法具备一些功能),我们给这些方法起了名字叫做(生命周期钩子函数/组…

vue生命周期详解和使用场景整理

我们从vue的原理上来理解一下vue的生命周期,以及使用场景(使用场景应该试很多新手同学比较懵的地方),建议有条件的同学可以看一下vue源码,更能深入理解。 不看源码的同学也没有关系,我们从业务场景切入&…