【MySQL】_内连接
本专栏关于联合查询已建好相应库与表,链接如下:
【MySQL】_联合查询基础表-CSDN博客
基于以上库与表,本篇介绍内连接;
内连接表示语法有两种:
第一种:
select [列名],[列名]... form [表1],[表2] where 条件;
第二种:
select [列名],[列名] from [表1] join [表2] on 条件;
2.1 示例1:查询许仙同学的成绩
(“许仙”是名字在student表中,“成绩”在score表中,位于不同的表中,需要进行联合查询)
将student表与score表进行笛卡尔积——>删去无效数据——>按照许仙名字来筛选——>必要时对结果进行精简;
(1)计算student表和score表的笛卡尔积:
mysql> select* from student,score;
(2)根据两个表的关联列是否对应,删去无效数据:
mysql> select* from student, score where id = student_id;
注:当联合查询的关联列名重名时,可以使用表名.列名进行指定,即上文SQL指令也可以写为:
mysql> select* from student, score where student.id = score.student_id;
在实际开发中,更建议采用这种写法,避免当表多列多的情况下产生混淆;
(3)根据名字,筛选出许仙同学的成绩:
mysql> select* from student, score where student.id=score.student_id and student.name = "许仙";
此时查询结果为:
+----+-------+------+---------------+------------+-------+------------+-----------+
| id | sn | name | qq_mail | classes_id | score | student_id | course_id |
+----+-------+------+---------------+------------+-------+------------+-----------+
| 4 | 00031 | 许仙 | xuxian@qq.com | 1 | 67.0 | 4 | 1 |
| 4 | 00031 | 许仙 | xuxian@qq.com | 1 | 23.0 | 4 | 3 |
| 4 | 00031 | 许仙 | xuxian@qq.com | 1 | 56.0 | 4 | 5 |
| 4 | 00031 | 许仙 | xuxian@qq.com | 1 | 72.0 | 4 | 6 |
+----+-------+------+---------------+------------+-------+------------+-----------+
(4)对查询结果进行精简,查询指令与最终查询结果为:
mysql> select student.name, score.course_id, score.score from student, score-> where student.id = score.student_id and student.name = "许仙";
+------+-----------+-------+
| name | course_id | score |
+------+-----------+-------+
| 许仙 | 1 | 67.0 |
| 许仙 | 3 | 23.0 |
| 许仙 | 5 | 56.0 |
| 许仙 | 6 | 72.0 |
+------+-----------+-------+
4 rows in set (0.00 sec)
注:计算笛卡尔积即其筛选方式有两种:
第一种:
select* from [表名],[表名] where [条件];
第二种:
select* from [表名] join [表名] on [条件];
故而上文的SQL语句也可以写为:
mysql> select student.name, score.course_id, score.score from-> student join score-> on student.id = score.student_id and student.name="许仙";
2.2 示例2: 查询所有同学的总成绩,及同学的个人信息
(查询信息关系到学生表与成绩表)
将student表和score表进行笛卡尔积计算——>根据联合列学生id删去无效信息——>根据学生name或id进行分组并根据分组情况对score进行求和
(1)将student表和score表进行笛卡尔积计算并对无效信息进行删除:
mysql> select* from student,score where student.id = score.student_id;
(2)根据学生id进行分组,根据分组使用聚合函数sum进行聚合计算总成绩:
mysql> select student.name, sum(score.score)from student,score where student.id = score.student_id group by id;
+------------+------------------+
| name | sum(score.score) |
+------------+------------------+
| 黑旋风李逵 | 300.0 |
| 菩提老祖 | 119.5 |
| 白素贞 | 200.0 |
| 许仙 | 218.0 |
| 不想毕业 | 118.0 |
| 好好说话 | 178.0 |
| tellme | 172.0 |
+------------+------------------+
7 rows in set (0.00 sec)
2.3 示例3:查询所有同学的科目及各科成绩,及同学的个人信息
(同学姓名在student表中,科目信息在course表中,各科成绩在score表中)
mysql> select student.name, course.name, score.score-> from student, course, score-> where student.id = score.student_id-> and score.course_id = course.id;
+------------+--------------+-------+
| name | name | score |
+------------+--------------+-------+
| 黑旋风李逵 | Java | 70.5 |
| 黑旋风李逵 | 计算机原理 | 98.5 |
| 黑旋风李逵 | 高阶数学 | 33.0 |
| 黑旋风李逵 | 英文 | 98.0 |
| 菩提老祖 | Java | 60.0 |
| 菩提老祖 | 高阶数学 | 59.5 |
| 白素贞 | Java | 33.0 |
| 白素贞 | 计算机原理 | 68.0 |
| 白素贞 | 高阶数学 | 99.0 |
| 许仙 | Java | 67.0 |
| 许仙 | 计算机原理 | 23.0 |
| 许仙 | 高阶数学 | 56.0 |
| 许仙 | 英文 | 72.0 |
| 不想毕业 | Java | 81.0 |
| 不想毕业 | 高阶数学 | 37.0 |
| 好好说话 | 中国传统文化 | 56.0 |
| 好好说话 | 语文 | 43.0 |
| 好好说话 | 英文 | 79.0 |
| tellme | 中国传统文化 | 80.0 |
| tellme | 英文 | 92.0 |
+------------+--------------+-------+
20 rows in set (0.00 sec)
相关文章:
【MySQL】_内连接
本专栏关于联合查询已建好相应库与表,链接如下: 【MySQL】_联合查询基础表-CSDN博客 基于以上库与表,本篇介绍内连接; 内连接表示语法有两种: 第一种: select [列名],[列名]... form [表1],[表2] where…...
ElasticSearch之跨集群搜索cross cluster search
写在前面 本文看下跨集群搜索相关内容。 1:实战 1.1:创建集群 bin/elasticsearch -E node.namecluster0node -E cluster.namecluster0 -E path.datacluster0_data -E discovery.typesingle-node -E http.port9200 -E transport.port9300 bin/elastic…...
06|Mysql内部组件结构
1. 连接器 客户端要向mysql发起通信都必须先跟Server端建立通信连接,而建立连接的工作就是由连接器完成的 mysql -h host[数据库地址] -u root[用户] -p root[密码] -P 3306连接步骤: 1、如果用户名或密码不对,你就会收到一个"Access denied for us…...
文件的写出操作
1. 文件不存在,创建文件后写出方法: <1>打开文件:open()方法是文件不存在时创建文件 file open("D:/test.txt","w",encoding"UTF-8")<2>写出文件: file.write("please open your book") #内容写到内…...
使用gitlab搭建npm的依赖库,并在项目中使用
使用gitlab搭建npm的依赖库,并在项目中使用 背景 1, 在多个项目中都有个公共的库包,又不想发布到npm 2, 一些开源的库,修改了一些定制化的东西,又不想推送代码到开源仓库(不一定会合并你的代码…...
如何让电脑待机而wifi不关的操作方法!!
1、一台电脑如果一天不关机,大约消耗0.3度电。 一般一台电脑的功耗约为250-400W(台式机)。 一台电脑每月的耗电量:如果是每小时300W每天10小时每月30天90KW,即90千瓦时的电。 这只是保守估计。 2、使用完毕后正常关闭…...
如何在Spring Boot应用中进行文件预览?
在Spring Boot应用中实现文件预览功能,具体方法取决于文件的类型和你想如何预览它们。以下是一些常见文件类型的预览方法: 1. **图片预览**: 对于图片文件,你可以直接在HTML页面中通过<img>标签的src属性引用图片的URL来…...
阿里云4核16G服务器多少钱?幻兽帕鲁配置报价
2024阿里云幻兽帕鲁专用服务器价格表:4核16G幻兽帕鲁专用服务器26元一个月、149元半年,默认10M公网带宽,8核32G幻兽帕鲁服务器10M带宽价格90元1个月、271元3个月。阿里云提供的Palworld服务器是ECS经济型e实例,CPU采用Intel Xeon …...
el-autocomplete 提示文字出不来?修改支持模糊搜索提示
查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…...
CentOS8 同步时间chrony ntpdate已无法使用
CentOS8系统中,原有的时间同步服务 ntp/ntpdate服务已经无法使用,使用yum安装,提示已不存在。 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) [rootlocalhost ~]# yum install ntp 上次元数据过期检查…...
NFS服务器挂载失败问题
问题 mount.nfs: requested NFS version or transport protocol is not supported背景:现在做嵌入式开发,需要在板端挂载服务器,读取服务器文件。挂载中遇到该问题。 挂载命令长这样 mount -t nfs -o nolock (XXX.IP):/mnt/disk1/zixi01.ch…...
(Linux学习二)文件管理基础操作命令笔记
Linux目录结构: bin 二进制文件 boot 启动目录 home 普通用户 root 超管 tmp 临时文件 run 临时运行数据 var 日志 usr 应用程序、文件 etc 配置文件 dev 文件系统 一、基础操作 在 Linux 终端中,你可以使用以下命令来清屏: clear 命令&am…...
Docker本地部署GPT聊天机器人并实现公网远程访问
文章目录 前言1. 拉取相关的Docker镜像2. 运行Ollama 镜像3. 运行Chatbot Ollama镜像4. 本地访问5. 群晖安装Cpolar6. 配置公网地址7. 公网访问8. 固定公网地址9. 结语 前言 随着ChatGPT 和open Sora 的热度剧增,大语言模型时代,开启了AI新篇章,大语言模型的应用非常广泛&…...
html2canvas + JsPDF.js 导出pdf分页时的问题
问题描述 前一段时间 实现了html2canvas jspdf.js 导出pdf的功能 项目当时没有测试做完就先搁置 最近项目要上线发现分页时问题 这篇文章记录一下之前的bug import html2canvas from html2canvas; import JsPDF from jspdf export function savePdf(el, title) {html2canva…...
Linux系统Docker部署StackEdit Markdown并实现公网访问本地编辑器
文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…...
从Spring Boot应用上下文获取Bean定义及理解其来源
前言 在Spring框架中,Bean是组成应用程序的核心单元。特别是在Spring Boot项目中,通过使用SpringApplication.run()方法启动应用后,我们可以获得一个ConfigurableApplicationContext实例,这个实例代表了整个应用程序的运行时环境…...
如何处理网络攻击对系统造成的损害?
网络攻击对系统造成的损害是当今企业面临的一大挑战。随着互联网的普及和数字化转型的加速,企业的运营越来越依赖于网络,但同时也面临着越来越多的网络安全威胁。一旦企业遭受网络攻击,其系统可能会遭受不同程度的损害,导致数据泄…...
数字IC后端设计利器 - 《Innovus的基本使用流程和命令》(附下载)
Innovus作为数字后端工具的后起之秀,在先进工艺下已经取得了令人瞩目的成就。其在Run time上的优势令人刮目,在timing、DRC、IR-drop上的结果更是让人竖起大拇指。 数字IC后端工程师学习Cadence公司的Innovus工具非常重要,因为Innovus是一款…...
Blender中四种不同的几何体类型(网格、曲线、体积和实例 )
网格、曲线、体积和实例是Blender中四种不同的几何体类型。它们各有特点,适用于不同的建模场景。 网格是由顶点、边和面组成的三维对象。它是Blender中最常用的几何体类型,可以用来创建各种模型,例如角色、场景、道具等。 曲线是一维对象&a…...
Vue3 学习笔记(Day5)
「写在前面」 本文为尚硅谷禹神 Vue3 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. Vue3 学习笔记(Day1) 2. Vue3 学习笔记(Day2&…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
