MySQL(基础篇)——多表查询

news2024/11/13 15:45:46

一.多表关系

  • 一对多(多对一)      

  • 多对多
  • 一对一
1.一对多(多对一)

a.案例:部门与员工的关系

b.关系:一个部门对应多个员工,一个员工对应一个部门

c.实现:在多的一方建立外键,指向一的一方的主键 

 2.多对多 

a.案例:学生与课程的关系

b.关系:一个学生可以选修多门课程,一门课程也可以供多个学生选择

c.实现:建立第三张表,中间表至少包含两个外键,分别关联两方主键

3.一对一 

a.案例:用户与用户详情的关系

b.关系:一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率 

c.实现:在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)

二.多表查询

1.概念

        指从多张表中查询数据。 

2.笛卡尔积

        是指在数学中,两个集合A和集合B的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)。 

3.分类

(1)连接查询

  • 内连接:相当于查询A、B交集部分的数据
  • 外连接:
    • 左外连接:查询左表所有数据,以及两张表交集部分的数据
    • 右外连接:查询右表所有数据,以及两张表交集部分的数据
  • 自连接:当前表与自身的连接查询,自连接必须使用表别名

(2)子查询

4.内连接 

(1)隐式内连接

SElECT  字段列表  FROM  表1,表2  WHERE  条件 ...

(2)显式内连接

 SELECT  字段列表  FROM  表1  [INNER] JOIN  表2  ON  连接条件 ...

5.外连接 

(1)左外连接

  SELECT  字段列表  FROM  表1  LEFT  [OUTER] JOIN  表2  ON  连接条件 ...

(2)右外连接

   SELECT  字段列表  FROM  表1  RIGHT  [OUTER] JOIN  表2  ON  连接条件 ...

6.自连接 

SELECT  字段列表  FROM  表A  别名A  JOIN  表A  别名B  ON  条件 ...

注:自连接查询,可以使内连接查询,也可以是外连接查询。 

7.联合查询——union,union all 

        对于union查询,就是把多次查询的结果并起来,形成一个新的结果集。

SELECT  字段列表  FROM  表A  ...

UNION [ALL]

SELECT  字段列表  FROM  表B  ...

  • union all:直接合并查询结果
  • union:合并查询的结果后进行去重操作 

 对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。

8.子查询
  • SQL语句中嵌套SELCET语句,称为嵌套语句,又称子查询

SELECT * FROM  t1  WHERE  column1 = (SELECT  column1  FROM  t2) 

子查询外部的语句可以是Insert/Update/Delete/Select中的任何一个。 

  • 分类

a.标量子查询(子查询的结果为单一个值)

b.列子查询(子查询结果为一列)

c.行子查询(子查询结果为一行)

d. 表子查询(子查询结果为多行多列)

(1)标量子查询

     常用操作符:=、<>、>、>=、<、<=

(2)列子查询

     常用操作符:IN、NOT IN、ANY、SOME、ALL

(3)行子查询

     常用操作符:=、<>、IN、NOT IN

(4)表子查询

     常用操作符:IN 

eg:

② 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1480294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

notch 滤波器设计

notch 滤波器是一种用于去除特定频率成分的滤波器&#xff0c;通常用于消除信号中的特定频率的干扰或噪声。也可以与一个系统级联&#xff0c;用于抑制系统谐振峰的影响。 假设 notch 滤波器的下陷频率为 ω c \omega_c ωc​&#xff0c;下陷程度为 d B d o w n dB_{down} …

k8s二进制部署的搭建

1.1 常见k8s安装部署方式 ●Minikube Minikube是一个工具&#xff0c;可以在本地快速运行一个单节点微型K8S&#xff0c;仅用于学习、预览K8S的一些特性使用。 部署地址&#xff1a;Install Tools | Kubernetes ●Kubeadm Kubeadm也是一个工具&#xff0c;提供kubeadm init…

高侧开关芯片四通道 40V 50mΩ车规级带反向电流保护功能负载检测高边开关

概述 PC8845/G是四通道、高侧功率具有集成NMOS功率FET的开关&#xff0c;以及电荷泵。该设备集成了高级 保护功能&#xff0c;例如负载电流限制&#xff0c;通过功率限制进行过载主动管理可配置闩锁关闭的超温停机。全面诊断和高精度电流感应这些功能实现了对负载的智能控制。…

html基础操练和进阶修炼宝典

文章目录 1.超链接标签2.跳锚点3.图片标签4.表格5.表格的方向属性6.子窗口7.音视频标签8.表单9.文件上传10.input属性 html修炼必经之路—各种类型标签详解加展示&#xff0c;关注点赞加收藏&#xff0c;防止迷路哦 1.超链接标签 <!DOCTYPE html> <html lang"en…

「媒体宣传」如何写好新闻稿?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 写好新闻稿是媒体宣传的关键环节之一&#xff0c;下面是一些关于如何写好新闻稿的建议&#xff1a; 明确新闻稿的目的和受众&#xff1a;在写新闻稿之前&#xff0c;首先要明确新闻稿的目…

在 Rust 中实现 TCP : 1. 联通内核与用户空间的桥梁

内核-用户空间鸿沟 构建自己的 TCP栈是一项极具挑战的任务。通常&#xff0c;当用户空间应用程序需要互联网连接时&#xff0c;它们会调用操作系统内核提供的高级 API。这些 API 帮助应用程序 连接网络创建、发送和接收数据&#xff0c;从而消除了直接处理原始数据包的复杂性。…

一念生花,Coze 结合VisActor 文生图实战总结

前言 词云魔方 逢年过节发送祝福语是中国人特有的礼节&#xff0c;然而准备拜年祝福语也是让人伤透脑筋&#xff0c;大多数人都是拷贝网络上流行的“段子”&#xff0c;改一下名字就发出来了。更有甚者连名字都不改&#xff0c;略显尴尬。 但是如果可以让 AI 总结你想对特定…

18个惊艳的可视化大屏(第十辑):物流运输快递方向

可视化大屏在物流运输行业中具有很大的应用价值&#xff0c;可以帮助企业实现实时监控、路线规划、数据分析、风险预警、服务质量监控和决策支持等目标&#xff0c;提高物流运输效率和安全性&#xff0c;降低成本&#xff0c;提升企业竞争力&#xff0c;贝格前端工场带来的和这…

跨国企业如何选择合格的国际数据业务传输方案

在全球化的商业环境中&#xff0c;跨国企业面临着数据跨境传输的挑战。随着业务的扩展&#xff0c;企业需要在不同国家和地区之间高效、安全地传输大量数据。选择合适的国际数据业务传输方案对于保障数据安全、提高业务效率、遵守法律法规至关重要。 为什么跨国企业需要一个合适…

CentOS 定时调度

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

蓝桥杯练习系统(算法训练)ALGO-994 最大分解

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给出一个正整数n&#xff0c;求一个和最大的序列a0&#xff0c;a1&#xff0c;a2&#xff0c;……&#xff0c;ap&#xff…

案例研究|DataEase助力众陶联应对产业链数据可视化挑战

佛山众陶联供应链服务有限公司&#xff08;以下简称为“众陶联”&#xff09;成立于2016年&#xff0c;是由34家陶瓷企业共同创办的建陶行业工业互联网平台&#xff0c;股东产值占整个行业的22.5%。众陶联以数据赋能为核心&#xff0c;积极探索新的交易和服务模式&#xff0c;构…

安达发|APS自动排程软件的三种模式

APS自动排程软件是一种用于生产计划和调度的工具&#xff0c;它可以帮助制造企业实现生产过程的优化和效率提升。根据不同的需求和应用场景&#xff0c;APS自动排程软件通常有三种模式&#xff1a;基于模拟仿真模式、基于TOC的模式和扩展以及基于数学建模。下面我将详细介绍这三…

小程序开发:app.vue检测更新时判断是否是朋友圈进入

因为如果从朋友圈点进小程序来的&#xff0c;有些功能就用不了&#xff0c;所以需要判断下是否从朋友圈点进来的。 检查代码如下&#xff1a; checkScene() { // 判断场景值 如果是从分享到朋友圈再打开 就会有一些功能无法使用 // 详见 https://developers.weixin.qq.com/…

Nodejs 第四十三章(redis)

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存数据结构存储系统&#xff0c;它提供了一个高效的键值存储解决方案&#xff0c;并支持多种数据结构&#xff0c;如字符串&#xff08;Strings&#xff09;、哈希&#xff08;Hashes&#xff09;、列表&a…

【机器学习实战1】泰坦尼克号:灾难中的机器学习(一)数据预处理

&#x1f338;博主主页&#xff1a;釉色清风&#x1f338;文章专栏&#xff1a;机器学习实战&#x1f338;今日语录&#xff1a;不要一直责怪过去的自己&#xff0c;她曾经站在雾里也很迷茫。 &#x1f33c;实战项目简介 本次项目是kaggle上的一个入门比赛 &#xff1a;Titani…

QML中动态表格修改数据

1.qml文件中的实现代码 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableModel{id:table_model…

Freesia项目目录结构

目录结构 前端目录&#xff1a; &#xff08;目录结构来自layui-vue-admin&#xff09; src文件下 api&#xff08;前端请求后端服务的路由&#xff09;assert&#xff08;一些内置或必要的资源文件&#xff09;layouts&#xff08;全局框架样式组件&#xff09;router&…

Facebook的数字治理挑战:社交平台的未来模式

在当今数字化时代&#xff0c;社交媒体平台已经成为人们日常生活的重要组成部分&#xff0c;而Facebook作为其中最具代表性的平台之一&#xff0c;其承载的社交功能和影响力已经不可小觑。然而&#xff0c;随着社交媒体的普及和发展&#xff0c;一系列数字治理挑战也随之而来&a…

git项目推荐 maku-boot低代码开发项目推荐

介绍项目 项目仓库地址 官方gitee,这是他的官网 用于做二次开发的脚手架在合适不过 后端框架采用 springboot3,security6,Mybatisplus2,jdk,各种oss的集合,判断ip地址等监控,用来作为源码学习和二次开发都是很好的教材 代码基本都是mvc的二次封装,便于理解 代码模块 启…