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支持多种语言和工具,省心受到…

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

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

【云原生】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;系统需要收集大量的含有车牌的图像数据作…

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

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

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

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

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

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

53. QT插件开发--插件(动态库so)的调用与加载

1. 说明 在使用QT进行插件库的开发之后,还需要将这个插件库程序生成的so动态链接库加载到主程序框架中进行使用,才能达到主程序的模块化开发的效果。在前一篇文章插件创建中介绍了如何在QT中开发插件库,并提供外部接口调用。本篇博客的主要作用是模拟在主程序框架中加载动态…

深度学习Day-20:DenseNet算法实战 乳腺癌识别

&#x1f368; 本文为&#xff1a;[&#x1f517;365天深度学习训练营] 中的学习记录博客 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] 一、 基础配置 语言环境&#xff1a;Python3.8编译器选择&#xff1a;Pycharm深度学习环境&#xff1a; torch1.12.1c…

在表格中渲染轮播图的方法;

效果图&#xff1a;代码&#xff1a; shop()function shop() {// render()$.ajax({url: "http://jingxun.zhbbll.asia/pc/Commodity/shop_list", //要请求的后端地址type: "GET", //数据发送的方式(POST或者GET)dataType: JSON,headers: {token: token,id…

双Token方案实现Token自动续期(基于springboot+vue前后端分离项目)

文章目录 前言一、双Token方案介绍1. 令牌类型与功能2.双Token方案的优点3.实现流程 二、具体实现1.后端实现1.1 jwt工具类1.2 响应工具类1.3 实体类1.4 过滤器1.5 controller1.6 启动类 2、前端实现2.1 登录页面2.2 index页面2.3 请求拦截器和响应拦截器 效果展示 前言 更多j…

【星座运势】本周财运分析,巨蟹座财富潜力大开!

大家好&#xff01;今天我们来谈谈巨蟹座本周的财富运势。经过调查和数据分析&#xff0c;我发现巨蟹座这周的财运潜力很大&#xff01;接下来&#xff0c;我将用通俗易懂的语言&#xff0c;通过代码说明&#xff0c;向大家展示巨蟹座的财富运势。 首先&#xff0c;我们需要通…

人工智能对零售业的影响

机器人、人工智能相关领域 news/events &#xff08;专栏目录&#xff09; 本文目录 一、人工智能如何改变零售格局二、利用人工智能实现购物体验自动化三、利用人工智能改善库存管理四、通过人工智能解决方案增强客户服务五、利用人工智能分析消费者行为六、利用 AI 打造个性化…

【javaEE-有关CPU进程和线程实现的并发编程及二者的区别】

&#x1f525;&#x1f525;&#x1f525;有关进程并发编程开发的成本问题 这次之前其实我们所有的写的程序都是使用单核心来运行的&#xff0c;但是一般我们的计算机都有很多核心&#xff0c;如果我们编程的时候&#xff0c;只使用一个核心的话&#xff0c;其实这是一个非常大…

使用源代码编译方式升级内核【笔记】

为什么要升级内核 升级内核有多个重要的原因,主要包括以下几点: 安全性:随着技术的发展,旧版本的内核可能会存在安全漏洞。黑客或恶意用户可能会利用这些漏洞进行攻击。升级内核可以修复这些已知的安全漏洞,从而提高系统的安全性。性能优化:新版本的内核通常会包含对性能…