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

一.多表关系

  • 一对多(多对一)      

  • 多对多
  • 一对一
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:

② 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

记录SSM项目集成Spring Security 4.X版本 之 加密验证和记住我功能

目录 前言 一、用户登录密码加密认证 二、记住我功能 前言 本次笔记的记录是接SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示-CSDN博客https://blog.csdn.net/u011529483/article/details/136255768?spm1001.2014.3001.5502 文章之后补…

生命游戏(Game of life)(OpenMP实现)

目录 生命游戏&#xff08;Game of life&#xff09;&#xff08;OpenMP实现&#xff09;问题描述OpenMP代码实现 运行参考资料 生命游戏&#xff08;Game of life&#xff09;&#xff08;OpenMP实现&#xff09; 问题描述 OpenMP代码实现 #include <omp.h> #include …

计算机提示msvcp110.dll丢失修复方法,轻松搞定DLL问题

当计算机系统中msvcp110.dll文件发生丢失时&#xff0c;可能会引发一系列运行问题和功能障碍&#xff0c;影响到用户的正常使用体验。这个动态链接库文件是Microsoft Visual C Redistributable Package的重要组成部分&#xff0c;对于许多基于Windows操作系统的应用程序来说&am…

网络安全学习笔记1

1.了解kali及安装 vmware安装&#xff0c;用户名密码均为kali 2.metasploit是什么 3.metasploit攻击windows系统 在kali中打来终端 数据msfconsole 进入metasploit的控制终端界面 msf的使用法则&#xff1a; 1.使用模块 2.配置模块必选项 3.运行模块 三步操作、实现对…

structuredClone() 详解

您是否知道&#xff0c;现在 JavaScript 中有一种原生的方式可以深拷贝对象&#xff1f; 没错&#xff0c;这个内置于 JavaScript 运行时的structuredClone函数就是这样&#xff1a; const calendarEvent {title: "Builder.io大会",date: new Date(123),attendees…

buuctf_misc_九连环

题目&#xff1a;&#xff08;一张123456cry.jpg&#xff09; 这个先直接上kali&#xff0c;图片已改名cry.jpg 在上一篇&#xff0c;我留存了kali文件夹下有"叉"打不开的问题&#xff0c;经查阅&#xff0c;已解决&#xff1a; http://t.csdnimg.cn/bgv4T 输入&a…

抖音视频批量下载工具|视频评论采集软件

我们团队自主研发的视频批量下载软件为您提供了一种全新的视频获取体验。通过这款工具&#xff0c;您可以轻松地根据特定关键词搜索视频内容&#xff0c;实现批量和有选择性的提取&#xff0c;让您更便捷地获取符合需求的视频内容。 操作简要说明如下&#xff1a; 1. 关键词搜…

灰度负载均衡和普通负载均衡有什么区别

灰度负载均衡&#xff08;Gray Load Balancing&#xff09;与普通负载均衡的主要区别在于它们服务发布和流量管理的方式。 灰度负载均衡 目的&#xff1a;主要用于灰度发布&#xff0c;即逐步向用户发布新版本的服务&#xff0c;以减少新版本可能带来的风险。工作方式&#x…

基于springboot实现在线考试系统项目【项目源码+论文说明】

基于springboot实现在线考试系统演示 摘要 时代在变化&#xff0c;科技技术以无法预测的速度在达到新的高度&#xff0c;并且被应用于社会生活的各个领域&#xff0c;随着生活的加快&#xff0c;也使很多潜在的点逐渐突显出来&#xff0c;社会对于人才的要总是非常迫切的&…

【论文阅读】《PRODIGY: Enabling In-context Learning Over Graphs》

文章目录 0、基本介绍1、研究动机2、创新点3、挑战4、准备4.1、图上分类任务4.2、少样本提示4.3、提示图表示4.3.1、Data graph G D \mathcal{G}^D GD4.3.2、task graph G T \mathcal{G}^T GT 5、方法论5.1、提示图上的信息传播架构5.1.1、Data graph Message Passing5.1.2、…

【学习笔记】数据结构与算法05:树、层序遍历、深度优先搜索、二叉搜索树

知识出处&#xff1a;Hello算法&#xff1a;https://www.hello-algo.com/ 文章目录 2.4 树2.4.1 「二叉树 binary tree」2.4.1.1 二叉树基本操作2.4.1.2 二叉树的常见类型「完美二叉树 perfect binary tree」「完全二叉树 complete binary tree」「完满二叉树 full binary tre…

OJ_重建二叉树

题干 已知&#xff1a;二叉树的先序序列和中序序列求&#xff1a;后序序列 C实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string> using namespace std;struct TreeNode {char data;TreeNode* left;TreeNode* right; };TreeNode* Rebuil…

国科大计算机网络实验 HTTP服务器

UCAS_CN_LAB HTTP服务器实验 实验要求 •实现&#xff1a;使用C语言实现最简单的HTTP服务器 •同时支持HTTP&#xff08;80端口&#xff09;和HTTPS&#xff08;443端口&#xff09; •使用两个线程分别监听各自端口 •只需支持GET方法&#xff0c;解析请求报文&#xff…

数字IC基础:数字集成电路书籍推荐

相关阅读 数字IC基础https://blog.csdn.net/weixin_45791458/category_12365795.html?spm1001.2014.3001.5482 目录 Verilog HDL 《Verilog HDL数字设计与综合(本科教学版)》 (美)萨米尔帕尔尼卡 《Verilog高级数字系统设计技术与实例分析》(美)基肖尔米什拉 《Verilog编…

终结数据混乱!开发者必学的GraphQL秘籍,高效API只需一步

在数字世界中&#xff0c;API就如同城市中的道路&#xff0c;连接着各种服务和数据。然而&#xff0c;传统的API&#xff08;如RESTful&#xff09;虽然功不可没&#xff0c;但随着技术复杂性和需求多样性不断攀升&#xff0c;它们显露出的局限性也呼唤着新的可能出现。此时&am…

四川尚熠电子商务有限公司电商服务领域的佼佼者

在数字化浪潮席卷全球的今天&#xff0c;电子商务已成为推动企业转型升级、拓展市场渠道的重要力量。四川尚熠电子商务有限公司&#xff0c;作为一家专注于抖音电商服务的公司&#xff0c;凭借其独特的服务模式和创新的营销策略&#xff0c;在激烈的市场竞争中脱颖而出&#xf…

Android 获取USB相机支持的分辨率有多少

直接上代码 private fun getCamera() {// 获取系统相机服务val cameraManager requireContext().getSystemService(Context.CAMERA_SERVICE) as? CameraManagerif (cameraManager ! null) {// 在这里进行相机管理器的操作// 获取相机设备的 ID&#xff08;这里假设使用第一个相…

C++:类与对象(1)

创作不易&#xff0c;谢谢支持&#xff01; 一、面向过程和面向对象 1、C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 如我们要实现洗衣服&#xff1a; 2、而C是基于面向对象的&#xff0c;关注的是…

【EI会议征稿通知】第三届仿真设计与计算建模国际学术会议(SDCM 2024)

The 3rd International Conference on Simulation Design and Computational Modeling 第三届仿真设计与计算建模国际学术会议&#xff08;SDCM 2024&#xff09; 第三届仿真设计与计算建模国际会议&#xff08;SDCM 2024&#xff09;将于 4 月 26-28 日在中国重庆召开。第二届…

理解python3中的回调函数

百度百科说&#xff1a;回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;我们就说这是回调函数。回调函数不是由该函数的实现方直接调用&#…