MySQL数据操作与查询- 连接查询

一、引入
1、为什么需要使用连接查询?
查询信息的来源如果来自多张表,则必须对这些表进行连接查询。
2、连接查询的分类
内连接和外连接。
二、内连接
1、概述
将两张表的记录组合在一起,产生一个新的结果。
(1)具体实现:将表1的每一行和表2的每一行进行比较,找出满足条件的组合。
(2)分类:交叉连接(笛卡尔积)、 相等连接 、自然连接。
2、交叉连接(笛卡尔积)
返回两张表所有的组合情况。
语法:
1 select 字段列表 from 1 , 2
【实例】 求出学生表和课程表的笛卡尔积。
【解答】
1 select * from student,course
【说明】
学生表有4条记录,课程表有6条记录,所有的组合方式共有4*6=24种。
3、 相等连接
返回满足条件的组合情况。
语法:
1 select 字段列表
2 from 表名 1
3 [ inner ] join 表名 2 on 表名 1. 字段名 1 = 表名 2. 字段名 2
4 where 条件表达式
【说明】
inner可以省略不写。
【实例】 查询得到学生的所有成绩。
【解答】
1 select *
2 from student
3 inner join score on student.student_id=score.student_id
【实例】 查询得到课程的所有成绩,显示的内容包括:课程号、课程名、成绩
【解答】
1 select c.course_id 课程号,
2 name as 课程名,
3 score 成绩
4 from course c ‐‐ 给course表取个别名c
5 join score sc on c.course_id=sc.course_id
4、自然连接
实现过程:将两张表的所有 名称相同的列 都将被比较,并且在结果集中把 重复的列去掉 , 结果集
中两张表中名称相同的列仅出现一次。而普通的内连接并不去掉重复的列。
语法:
1 select 字段列表 from 表名 1 natural join 表名 2
【实例】 使用自然连接将学生表和成绩表连接起来。
【解答】
1 select * from student natural join score
5、三表连接查询
语法:
1 select 字段列表
2 from 表名 1
3 join 表名 2 on 表名 1. 字段名 1 = 表名 2. 字段名 2
4 join 表名 3 on 表名 2. 字段名 3 = 表名 3. 字段名 4
5 where 条件表达式
【实例】 查询得到每位学生各门课程的成绩。显示内容包括:学号、姓名、课程名、成
绩。
【解答】
1 select s.student_id 学号,
2 s.name 姓名,
3 c.name 课程名,
4 score 成绩
5 from student s
6 join score sc on s.student_id=sc.student_id
7 join course c on c.course_id=sc.course_id
【实例】 查询得到修读了“HTML5网页设计”的所有学生信息,显示内容包括:学号、姓
名。
【解答】
1 select s.student_id 学号,
2 s.name 姓名
3 from student s
4 join score sc on s.student_id=sc.student_id
5 join course c on c.course_id=sc.course_id
6 where c.name='HTML5网页设计'
三、外连接
在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。 如果希望不满足连接条件
的记录也在查询结果中出现,这时需要使用 外连接 查询。
分类:左连接和右连接。
1、左外连接(left join)
结果集包括 左表的所有记录 和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于
右表的列值为 null。
1 select 字段列表
2 from 表名 1
3 left join 表名 2 on 表名 1. 字段名 1 = 表名 2. 字段名 2
【实例】 使用“左外连接”查询得到学生的所有成绩。
【解答】
1 select *
2 from student s
3 left join score sc on s.student_id=sc.student_id
2、右外连接(right join)
结果集包括 右表的所有记录 和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于
左表的列值为 null。
1 select 字段列表
2 from 表名 1
3 right join 表名 2 on 表名 1. 字段名 1 = 表名 2. 字段名 2
【实例】 使用“右外连接”查询得到课程的所有成绩。
【解答】
1 select *
2 from score sc
3 right join course c on c.course_id=sc.course_id

 

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

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

相关文章

【Java】过滤器/拦截器

文章目录 两者区别request链路全过程 在实际开发中,过滤器和拦截器都是经常使用的技术,但一被提及到其区别时,整个人就愣住了,好像没有认真地对两者进行区别和总结,这两者之间也确实很容易混淆,因此结合了很…

Milvus Cloud 问答机器人 上线!构建企业级的 Chatbot

01. 背景 早些时候我们在社区微信群发出了一份关于Milvus Cloud 自动问答机器人的调研问卷。 调研受到了社区同学的积极响应,很快我们就收到了很多热心用户的回复。 基于这些回复,我们整理出了 Milvus Cloud Chatbot 的形态: 以功能使用和文档查询为核心 提供聊天和搜索双形…

version-manager最好用的SDK版本管理器,v0.6.2发布

项目地址:https://github.com/gvcgo/version-manager 中文文档:https://gvcgo.github.io/vdocs/#/zh-cn/introduction 功能特点: 跨平台,支持Windows,Linux,MacOS支持多种语言和工具,省心受到…

react捡起来了

通过脚手架创建react项目: 1.首先看下自己的npm和node版本:cmd打开自己的终端:输入: npm -v 查看npm的版本 node -v查看node的版本 2.不确定自己以前是否安装过creare-react-app,可以通过create-react-app -V(–versio…

【Apache Doris】周FAQ集锦:第 5 期

【Apache Doris】周FAQ集锦:第 5 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和…

【泛微系统】PC端/移动端JS写法区别

PC端/移动端JS写法区别 1.提交时调用的方法不同: PC端提交时调用:checkCustomize 移动端提交时调用:window.doSubmit_4Mobile 案例:PC端:var checkCustomize2 = checkCustomize;checkCustomize = function (){//这里添加代码//if(1 == 2){// return false;//}return …

【云原生】Kubernetes----Kubernetes集群部署Prometheus 和Grafana

目录 引言 一、环境准备 二、部署node-exporter (一)创建命名空间 (二)部署node-exporter 1.获取镜像 2.定义yaml文件 3.创建服务 4.查看监控数据 三、部署Prometheus (一)创建账号并授权 &…

厂里资讯之app端文章查看

文章列表加载 需求分析 文章布局展示 表结构分析 ap_article 文章基本信息表 ap_article_config 文章配置表 ap_article_content 文章内容表 三张表关系分析 根据数据库设计的表生成对应的实体类 ap_article文章表对应实体 package com.kjz.model.article.pojos;import co…

2024.6.16 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、创新点 4、匹配问题 5、SuperGlue架构 5.1、注意力图神经网络(Attentional Graph Neural Network) 5.2、最佳匹配层(Optimal matching layer) 5.3、损失 6、实验 6.…

【教程】Linux设置进程的优先级

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 关键指令 sudo chrt -f <优先级> <指令> 示例脚本 当然也可以不是启动Python脚本&#xff0c;普通的指令都可以&#xff0c;可自行适当修…

38、基于卷积神经网络(CNN)的车牌自动识别系统(matlab)

1、原理及流程 1&#xff09;原理 CNN&#xff08;卷积神经网络&#xff09;是一种深度学习模型&#xff0c;可以用于图像识别和分类任务。车牌自动识别系统的原理基本上就是使用CNN模型对车牌图像进行处理和识别。 首先&#xff1a;系统需要收集大量的含有车牌的图像数据作…

cmake target_include_directories 详解

在 CMake 中&#xff0c;target_include_directories 命令用于向特定目标&#xff08;如可执行文件或库&#xff09;添加包含目录&#xff0c;以便编译器能够找到特定目标所需的头文件。 基本语法 target_include_directories(target_name[SYSTEM] [BEFORE]directory1[direct…

什么是知识图谱

文章目录 知识图谱概念知识图谱的发展历史知识图谱的价值知识图谱概念 知识图谱是一种用图模型来描述知识和建模世界万物之间的关联关系的技术方法。知识图谱由节点和边组成。节点可以是实体,如一个人、一本书等,或是抽象的概念,如人工智能、知识图谱等。边可以是实体的属性…

八股操作系统和计算机网络

5.线程间的同步的方式有哪些&#xff1f; 6.PCB(不熟悉) 进程状态 什么是僵尸进程和孤儿进程&#xff1f; 进程调度算法 死锁的理解 举个发生死锁的例子 解决死锁的方式 内存管理做了哪些事情 什么是内存碎片 常见的内存管理 段表通过什么数据结构实现地址映射 分段机制为什么会…

平板消解加热台-温度均匀,防腐蚀-实验室化学分析

DBF系列防腐电热板 是精致路合金加热板块表面经进口高纯实验级PFATeflon氟塑料防腐不粘处理&#xff0c;专为实验室设计的电加热产品&#xff0c;是样品前处理中&#xff0c;加热、消解、煮沸、蒸酸、赶酸等处理的得力助手。可以满足物理、化学、生物、环保、制药、食品、饮品…

星型、环型、总线型和网状型拓扑结构是什么意思?

拓扑结构&#xff08;Topology&#xff09;是指对象在保持某些基本性质不变的情况下&#xff0c;不考虑距离和角度等几何细节的形状和空间关系。换句话说&#xff0c;拓扑结构研究的是物体在连续变形&#xff08;如拉伸、压缩、扭曲等&#xff09;下保持不变的性质。这一点不太…

黑马头条Minio报错non-xml response from server错误的解决方法

今天在写项目的时候&#xff0c;想测试minio上传文件功能是否正常&#xff0c; 但是每次都出现non-xml response from server的错误。 自己也在网上找了很多解决方法&#xff0c;大部分是说用户名和密码的配置问题&#xff0c;但是检查后发现并没有错误。 最后发现是自己的dock…

允许长单词和数字换行

title: 允许长单词和数字换行 date: 2024-06-15 20:18:15 tags: vue3 当文字的张度大于盒子的最大长度&#xff0c;但是由于它是一串数字或者是一串英文字母&#xff0c;通常是不会默认换行的。 在输入的时候我们会经常遇见这样的问题&#xff0c;这个时候就要重新定义一下样…

【Kafka专栏 14】Kafka如何维护消费状态跟踪:数据流界的“GPS”

作者名称&#xff1a;夏之以寒 作者简介&#xff1a;专注于Java和大数据领域&#xff0c;致力于探索技术的边界&#xff0c;分享前沿的实践和洞见 文章专栏&#xff1a;夏之以寒-kafka专栏 专栏介绍&#xff1a;本专栏旨在以浅显易懂的方式介绍Kafka的基本概念、核心组件和使用…

Bio-Info每日一题:Rosalind-07-Mendel‘s First Law(孟德尔第一定律 python实现)

&#x1f389; 进入生物信息学的世界&#xff0c;与Rosalind一起探索吧&#xff01;&#x1f9ec; Rosalind是一个在线平台&#xff0c;专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战&#xff0c;帮助用户从基础到高级掌握生物信息学知识。无论你是初…