查询列名在哪张表_探索SQL-多表查询

一、表的加法(Union)

1、用法:将两个表合并成一个表

e7848aaa5349631f016d9b809da25fec.png

2、语句:

select 查询结果
from 从哪张表查询
union
select 查询结果
from 从哪张表查询

*需保留重复行*

select 查询结果
from 从哪张表查询
union all
select 查询结果
from 从哪张表查询

练习:

将课程表及课程表1合并在一起

课程表1:

a587dd05ea97f52f9e31ff70591603a3.png

课程表2:

ecf7623e881f659eb69e9991074ea5e1.png

合并结果:

1)不保留重复行

46dfbd5a60495f4069b8b88c2229041f.png

2)保留重复行

1f6f79a82d6d2cfc1225433bd966fb91.png

二、表的联结

联结:表和表之间是通过列产生关系,联结就是通过表和表之间关系将两个表合并在一起的操作。

表的联结分为:交叉联结(cross join)、内联结(inner join)、左联结(left join)、右联结(right join)、全联结(full join);内联结、左联结、右联结这3种是较常用的联结方法。

1、交叉联结(cross join)

将表的每一行与另一个表的每一行联结在一起,行数是两个表行数的乘积;不常用,结果行数太多。

2、内联结(inner join)

查找出同时存在于两张表的数据。

语句:

select....
from 表1 as a 
inner join 表2 as b
on a.列名=b.列名;

41cb2aed0272f7161528e913af762f67.png

3、左联结(left join)

将左侧的表作为主表,主表中的数据全部读取出来,右边的表只选取与主表有相同列的表。

语句:

select....
from 表1 as a 
left join 表2 as b
on a.列名=b.列名;

34da0916c57febf3931a3687ed496ffd.png

*在左联结基础上去掉两表共同的部分*

select....
from 表1 as a 
left join 表2 as b
on a.列名=b.列名
where b.列名 is null;

a1efc1b8c2dfba7b24b5194cc542a317.png

4、右联结(right join)

将右表作为主表,主表中的数据全部读取出来,左边的表只选取与主表有相同列的表。

语句:

select....
from 表1 as a 
right join 表2 as b
on a.列名=b.列名;

5fff7dd338baf4c07bcd0cfc2c9eb2e6.png

*在右联结基础上去掉两表共同的部分*

select....
from 表1 as a 
right join 表2 as b
on a.列名=b.列名
where b.列名 is null;

e2ffbc451c4ae63fc84f0d0c7a503ee1.png

5、全联结(full join)

返回左表和右表中所有的行,当某行与另一表中有匹配的行,两行会进行合并,当某行与另一表中无匹配行,另一表对应的行会填充成空值;mysql不支持全联结。

bd8708cb43d7c1979338e2ae4167b8ef.png

练习:

1、用内联结将学生和成绩表合并在一起

8721310d2fc9253f6db91f83f8a25252.png

2、用左联结将学生和成绩表合并在一起

ea992131cc589d26871e38d709a76c6f.png

*在左联结基础上去掉两表共同的部分*

78f20c5bd07cac899e0335f12013d728.png

3、用右联结将学生和成绩表合并在一起

877457184743b9d87088ed77226ad05c.png

*在右联结基础上去掉两表共同的部分*

822737588367a8f2e294557adec9cd10.png
score表中的所有学号student表中都涵盖了,因此去掉共同部分会显示空值

三、联结应用案例

1、查询所有学生的学号、姓名、选课数、总成绩

362492e91c9d0b05b7a5520bdd7026e3.png

2、查询平均成绩大于85的所有学生的学号、姓名和平均成绩

106f15e087ae4fe4bc9844a8248306e8.png

3、查询学生的选课情况:学号、姓名、课程号、课程名称

9d6cb58e314443460d52c61e162ba955.png

四、case表达式

使用case表达式可以帮助处理复杂的查询问题,相当于一个条件判断的函数,判断每一行是不是满足某一条件。

a51e3f7fae0e0428ed83753992ce1dbb.png

1、注意事项:

1)else可以省略不写,默认为else为空值,最好不省略;

2)end不可以省略。

2、如何使用

当有多种情况需要条件判断时使用,可以用于sql语句的任意语句中。

练习:

1、查询出每门课程的及格人数和不及格人数

4f4c85194d139fec65716f5745446a23.png

2、使用分段[100-85]、[85-70]、[70-60]、[<60]来统计各科成绩,分别统计各分数段人数:课程ID和课程名称

7c00749c5504d0e31cce462553ef8e78.png

五、sqlzoo练习

JOIN

30c1b84ae8277bbaabf16e58221211af.png

48085b31975783a92539c00993b04c0f.png

9a6422d508d82d3b8a8bcaed83665558.png

82eabde0b8127574ee5f383ffb011b82.png

e18b05d355ea48a3423d4ebbeedf27f6.png

441b34c72fbe8fc2e142e79a099ac600.png

215f0d163e922ce139be2e87feb4562c.png

14554dfc04d25cf0fd044213aee1fa95.png

4307b07e151135ed1e01af40c382d6e6.png

d3ad8294d6b2ccb2ec27f39bba6ffbf0.png

b7b78f69f4ae537277f01c88a154b292.png

913d663bf6cfe060eb932747e76fd0b3.png

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

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

相关文章

使用未初始化的内存是什么意思_他们都说JVM能实际使用的内存比-Xmx指定的少?这是为什么呢...

这确实是个挺奇怪的问题&#xff0c;特别是当最常出现的几种解释理由都被排除后&#xff0c;看来JVM并没有耍一些明显的小花招&#xff1a;-Xmx和-Xms是相等的&#xff0c;因此检测结果并不会因为堆内存增加而在运行时有所变化。通过关闭自适应调整策略(-XX:-UseAdaptiveSizePo…

定义整型数组_C语言基础-数组怎么用

到目前为止&#xff0c;我们了解到C语言中可以使用整型&#xff0c;浮点型和字符型的数据类型来描述我们人类世界的各种数据&#xff0c;但是这些还远远不够……我们在IOT领域经常会遇到这样一个数据使用场景&#xff1a;某天的固定时间内&#xff0c;会有多台&#xff08;我们…

找出一个字符串中出现次数最多的字_海量数据中找出前k大数(topk问题)

在海量数据中找出出现频率最好的前k个数&#xff0c;或者从海量数据中找出最大的前k个数&#xff0c;这类问题通常被称为top K问题。针对top K类问题&#xff0c;通常比较好的方案是分治Trie树/hash小顶堆&#xff08;就是上面提到的最小堆&#xff09;&#xff0c;即先将数据集…

crowd counting_[crowd_counting]-SFCN-CVPR2019amp;amp;GCC dataset

1.Contribution&#xff08;1&#xff09;主要是提出了基于GTA5的GCC数据集数据集下载地址&#xff1a;https://gjy3035.github.io/GCC-CL/​gjy3035.github.io&#xff08;2&#xff09;提出了在如何在GCC上train&#xff0c;然后在传统的通用数据集上test的迁移学习方案&…

代码更换ui图片_用技术的方式,在UI设计稿中设置随机码,保证高清

本文首发于&#xff1a;行者AI 在工作中会遇到批量给图片添加文字&#xff0c;随机码等需求&#xff0c;当数据码数量较大时&#xff0c;UI的工作量就会非常大&#xff0c;这时候我们可以用python来帮我们提高工作效率。1. 需求分析我们有这样一张图片&#xff0c;我们需要将一…

hash地址_redis中的hash扩容、渐进式rehash过程

背景&#xff1a; redis字典&#xff08;hash表&#xff09;当数据越来越多的时候&#xff0c;就会发生扩容&#xff0c;也就是rehash对比&#xff1a;java中的hashmap&#xff0c;当数据数量达到阈值的时候(0.75)&#xff0c;就会发生rehash&#xff0c;hash表长度变为原来的二…

是什么牌子_水晶项链什么牌子好

阅读本文前&#xff0c;请您先点击上面的蓝色字体&#xff0c;再点击“关注”&#xff0c;这样您就可以免费收到最新内容了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注&#xff01; …

iframe异步加载_5种延迟加载图像的方法以帮助你提升网站性能与用户体验

英文 | https://www.sitepoint.com/five-techniques-lazy-load-images-website-performance/翻译 | web前端开发(ID&#xff1a;web_qdkf)由于图像是Web上最流行也是必不可少的内容类型之一&#xff0c;因此网站上的图片页面加载时间很容易成为一个问题。即使进行了适当的优化&…

springframework报错_应对报错信息的必杀技!

今天遇到了一个错误&#xff0c;一般的错误提示会很明显&#xff0c;一看就知道是什么问题。今天遇到的这个说实话真的不好找原因&#xff0c;一般在这种情况下该怎么解决呢&#xff1f;分享下我的思路吧&#xff0c;不一定是最好的&#xff0c;至少有用。直接上图吧&#xff0…

电脑运行卡顿怎么处理_【众点学】电脑运行PS卡顿?可能是你的虚拟内存没设置好!...

不少小伙伴都遇到过这样的烦恼明明自己的电脑拥有大内存PS用着用着就卡顿了经过教体君的仔(bai)细(du)研(yi)究(xia)发现原来电脑的 虚拟内存 只有2G当我们用大型软件或玩大型游戏电脑越用越卡时该怎么做&#xff1f;今天【众点学】我们一起来看看Win7和Win10系统下分别如何设置…

线程池拒绝策略 开发中常用什么策略_面试官:说说你知道多少种线程池拒绝策略...

往期文章为什么阿里Java规约要求谨慎使用SimpleDateFormathttps://www.toutiao.com/i6696127929048367629/为什么我强烈推荐你用枚举来实现单例模式https://www.toutiao.com/i6696861933687013901/为什么不要在MySQL中使用UTF-8编码方式https://www.toutiao.com/i6697966437727…

css html 双面打印_从 Linux 命令行进行打印 | Linux 中国

导读&#xff1a;在 Linux 命令行进行打印的内容比单单一个 lp 命令多得多&#xff0c;让我们来看一些可用选项。       本文字数&#xff1a;4305&#xff0c;阅读时长大约&#xff1a;5分钟https://linux.cn/article-13012-1.html作者&#xff1a;Sandra Henry-stocker译…

服务器内存超限问题_服务器内存爆满最佳处置方案

内存爆满截图&#xff1a;分析&#xff1a;内存持续飙升&#xff0c;应该是有大量内存一直没有释放&#xff0c;考虑僵尸对象&#xff0c;僵尸进程&#xff0c;最简单的就是重启服务器&#xff0c;但是就无法找到罪魁祸首了。验证&#xff1a;top命令查看活跃进程的资源使用情况…

js map对象遍历_何时使用 Map 来代替变通的 JS 对象

JS 普通对象 {key: value} 用于存放结构化数据。但有一件事我觉得很烦:对象键必须是字符串(或很少使用的 symbol)。如果将数字用作键会怎样&#xff1f;在这种情况下不会有错误&#xff1a;const names { 1: One, 2: Two,};Object.keys(names); // > [1, 2]JS 会隐式地将…

mysql怎么显示结果窗口_mysql8中窗口函数

在以前的MySQL版本中是没有窗口函数的&#xff0c;直到MySQL8.0才引入了窗口函数。窗口函数是对查询中的每一条记录执行一个计算&#xff0c;并且这个计算结果是用与该条记录相关的多条记录得到的。1.窗口函数与聚合函数窗口函数与聚合函数很像&#xff0c;他们都是在一组记录而…

log4jdbc mysql_[简单]log4jdbc-log4j2配置简记_MySQL

log4jdbc-log4j2&#xff0c;就不多说了&#xff0c;不了解的可以谷歌&#xff0c;附上log4jdbc-log4j2的官方链接&#xff1a;https://code.google.com/p/log4jdbc-log4j2/ &#xff0c;上面有非常详细的介绍。简单的贴下配置文件&#xff0c;其他的见附件&#xff1a;databas…

vb实时错误6 溢出_java内存溢出系列(6): Out of swap space?

本文是java内存溢出系列第6小篇。JVM启动参数指定了最大内存限制。如 -Xmx 以及相关的其他启动参数. 假若JVM使用的内存总量超过可用的物理内存, 操作系统就会用到虚拟内存。错误信息 java.lang.OutOfMemoryError: Out of swap space? 表明, 交换空间(swap space,虚拟内存) 不…

java备份还原mysql数据库_Java备份还原Mysql数据库

///实体类package com.ews.util;/*** 系统备份展示对象** */public class DataFile {private String fileName;//备份文件的名称private String fileDate;//备份文件的日期private String filePath;//备份文件的地址private String fileSize;//备份文件的大小public String get…

mysql 查看锁_别吵吵,分布式锁也是锁

Tomcat是这个系统的核心组成部分&#xff0c; 每当有用户请求过来&#xff0c;Tomcat就会从线程池里找个线程来处理&#xff0c;有的执行登录&#xff0c;有的查看购物车&#xff0c;有的下订单&#xff0c;看着属下们尽心尽职地工作&#xff0c;完成人类的请求&#xff0c;Tom…

php解析js的 arraybuffer_JS的所谓的第七种数据类型Symbol

首先&#xff0c;为什么说叫所谓呢&#xff1f;因为在2007年之前Js给予我们typeof解析数据类型的一共有六种(一直有争议&#xff0c;但是我们暂时就按typeof来算)functionNumberObjectbooleanStringundefined但当我们去 typeof Symbol () 的时候&#xff0c;会惊奇的发现&#…