JAVA培训之连接查询之子查询

news2024/11/22 17:55:53

子查询就是嵌套查询,即SELECT语句中包含SELECT语句,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。
子查询出现的位置:

  • Where子句中,作为条件存在;
  • from后,作为表存在(多行多列)。

下面我们通过几个练习题来了解子查询,如下所示:
(1)查询emp表中,工资最高的员工的详细信息,如图1-1所示:

图1-1 查询员工信息
图1-1中,查询语句是:select * from emp where sal=MAX(sal),看上去这条sql语句没有什么问题,但是执行的时候却报错了。原因是where子句后面不能使用聚合函数,为了解决这个问题,我们可以使用子查询。
(2)首先查询出emp表中的最大工资,然后再查询工资等于最大工资的员工信息,如图1-2所示:
图1-2 子查询
图1-2中,查询语句是:select * from emp where sal=(select MAX(sal) from emp ),在where子句中嵌套了一个子查询语句。该子查询语句查询的是最大工资数。
以上子查询的位置是在where子句中,下面我们来了解子查询的位置出现在from关键字后面的情况,如下所示:
(3)查询30号部门的员工信息,如图1-3所示:
图1-3 子查询
在from后面使用子查询时,一定要为子查询指定别名,图1-3中,查询语句是:select * from (select * from emp where deptno=30) e,子查询的别名为e,可以理解为查询的结果就是一张表,然后再从这张表中查询信息。
图1-2中,子查询语句的查询结果是单行单列,图1-3中的子查询语句的查询结果是多行多列。根据子查询的查询结果有以下分类:

  • 单行单列:这样的子查询通常用来做条件,如:select * from 表1 别名1 where 列1[=,>,<,>=,<=,!=] (select 列 from 表2 别名2 where 条件);
  • 多行单列:这样的子查询通常也用来做条件,如:select * from 表1 别名1 where 列1[in,all,any] (select 列 from 表2 别名2 where 条件);
  • 单行多列:这样的子查询通常也用来做条件,如:select * from 表1 别名1 where [列1,列2,…列n] in (select 列1,列2,…列n from 表2 别名2 where 条件);
  • 多行多列:这样的子查询通常作为要查询的表,即放在from关键词后面,如:select * from 表1 别名1,(select…) 别名2 where 条件。

单行单列的子查询我们就不在演示,下面我们了解子查询的结果是多行单列的练习题,如下所示:
(4)查询大于30部门所有员工工资的员工信息,包含30部门员工,如图1-4所示:

图1-4 多行单列子查询
图1-4的查询语句是:select * from emp where sal>all(select sal from emp where deptno=30),其中子查询语句:select * from emp where deptno =30的结果是30部门所有员工的工资,是一个多行单列的结果集,查询语句的含义是大于子查询结果集中的所有的工资值,all关键字就是所有的意思,那么只要员工的工资大于30部门员工的最大工资就符合查询条件。
(5)查询大于30部门任意一个员工工资的员工信息,包含30部门员工,如图1-5所示:
图1-5 多行单列子查询
图1-5中查询语句是:select * from emp where sal>any(select sal from emp where deptno=30),子查询还是查询30部门的所有员工工资,where条件子句代表查询员工工资大于30部门员工的最小工资的员工信息,any表示任意一个。
以上是多行单列的子查询,下面我们来了解单行多列的子查询,如下所示:
(6)查询与名称为殷天正的员工的工作,部门以及工资相同的员工信息,如图1-6所示:
图1-6 单行多列子查询
图1-1中,查询语句是:select * from emp where (job,deptno,sal) in (select job,deptno,sal from emp where ename=’殷天正’),子查询是查询殷天正的工作,部门以及工资。where条件字句表示查询job,deptno以及sal同时与殷天正的工作,部门,工资相同的员工。
   当子查询的查询结果是多行多列时,我们就可以把它当成是一个表,将它放在from关键词后面,这里我们就不在进行演示。

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

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

相关文章

Bootstrap学习(十一)

模态框使用&#xff1a; tab标签页组件 模态框使用&#xff1a; 有属性、方法、事件 fade显示时的渐变动画可加可不加&#xff0c;role是屏幕辅助设备用的 aria-lable屏幕辅助设备用的 静态的模态框是不展示的&#xff0c;需要调用展示方法才能展示 在中心内容放一个表单&…

Transformer Encoder-Decoer 结构回顾

有关于Transformer、BERT及其各种变体的详细介绍请参照笔者另一篇博客&#xff1a;最火的几个全网络预训练模型梳理整合&#xff08;BERT、ALBERT、XLNet详解&#xff09;。 本文基于对T5一文的理解&#xff0c;再重新回顾一下有关于auto-encoder、auto-regressive等常见概念&…

Elasticsearch 安装及启动【Windows】

一、下载 Elasticsearch 官网下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择自己所需版本进行下载&#xff0c;这里以Elasticsearch 8.2.2 为例 点击 Download&#xff0c;选择 Windows 版本 二、使用步骤 1.安装 Elasticse…

大数据培训课程WordCount案例实操

WordCount案例实操 1&#xff0e;需求 在给定的文本文件中统计输出每一个单词出现的总次数 &#xff08;1&#xff09;输入数据 &#xff08;2&#xff09;期望输出数据 atguigu 2 banzhang 1 cls 2 hadoop 1 jiao 1 ss 2 xue 1 2&#xff0e;需求分析 …

如何看待越来越多人报名参加软考?

可以肯定的告诉你软考证书是有用的。 但是软考证书如果对于自己今后的职业生涯规划也有帮助&#xff0c;和你的职业发展和需求相匹配&#xff0c;那才能发挥软考证书最大的优势。 软考证书的用处体现在哪里&#xff1f; 1、证书认可度高 软考是一种简称&#xff0c;全称是计…

变分推断(Variational Inference)解析

一、什么是变分推断 假设在一个贝叶斯模型中&#xff0c;xxx为一组观测变量&#xff0c;zzz为一组隐变量&#xff08;参数也看做随机变量&#xff0c;包含在zzz中&#xff09;&#xff0c;则推断问题为计算后验概率密度P(z∣x)P(z|x)P(z∣x)。根据贝叶斯公式&#xff0c;有&am…

如何使用向导创建Openflow 流表-网络测试仪实操

使用向导创建Openflow中的FlowTable&#xff0c;按照下面的步骤&#xff1a; 1、打开Renix软件&#xff0c;连接机框并预约测试端口&#xff1b; 2、配置一个IPv4接口 3、配置一个OpenFlowController绑定步骤二中的IPv4接口 4、创建一条RAW流&#xff08;这条流中包含FlowTabl…

虹科QA | SWCF2022 11月29日演讲笔记:卫星传输链路中的关键技术分享

虹科2022年度SWCF卫星通信与仿真测试研讨会正在进行中。昨日精彩演讲&#xff1a;卫星传输链路中的关键技术分享&#xff0c;感谢大家的观看与支持&#xff01; 昨晚的直播间收到一些粉丝的技术问题&#xff0c;我们汇总了热点问题并请讲师详细解答&#xff0c;在此整理分享给…

2022年十一届认证杯(小美赛)C题思路新鲜出炉

对人类活动进行分类 人类行为理解的一个重要方面是对日常活动的识别和监控。一个可穿戴的活动识别 系统可以提高许多关键领域的生活质量&#xff0c;如动态监测、家庭康复和跌倒检测。基于 惯性传感器的活动识别系统用于监测和观察老年人远程个人报警系统[1]&#xff0c;检测和…

结合RocketMQ 源码,带你了解并发编程的三大神器

摘要&#xff1a;本文结合 RocketMQ 源码&#xff0c;分享并发编程三大神器的相关知识点。本文分享自华为云社区《读 RocketMQ 源码&#xff0c;学习并发编程三大神器》&#xff0c;作者&#xff1a;勇哥java实战分享。 这篇文章&#xff0c;笔者结合 RocketMQ 源码&#xff0…

WRF模式行业应用问题解析及辅助学习

>>> 高精度气象模拟软件WRF(Weather Research Forecasting)技术及案例应用 今天小编给大家整理了WRF模式行业应用问题解析&#xff0c;不管是正在应用WRF还是入门小白&#xff0c;都建议多听一些行业问题&#xff0c;借鉴及深入了解&#xff0c;以下摘抄了个别问题&a…

5. 线性回归的从零开始实现

1.生成数据集 # num_examples 表示样本数量&#xff0c;也就是房屋数量 # w是权重向量 def synthetic_data(w, b, num_examples): #save"""生成yXwb噪声"""# X是一个从独立的正态分布中抽取的随机数的张量&#xff0c;正态分布的平均值为0、标…

双十二怎么入手,几款性能好物分享

过完了双十一&#xff0c;接下来就应该面临今年最后一个大优惠力度的双十二了&#xff0c;而且双十二的时间刚好靠近在过年&#xff0c;所以在这期间相信很多人购买的物品是更加偏向于家居用品方面&#xff0c;那么就不能够错过本篇文章了&#xff0c;本篇文章将为你们分享一些…

[附源码]计算机毕业设计springboot松林小区疫情防控信息管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

sonarqube安装

Sonarqube安装文档 1. 环境准备 参照官方文档Prerequisites and Overview | SonarQube Docs 安装符合sonarqube版本的JDK和数据库 目前服务器上JDK版本为11.0.2 sonarqube版本为9.1.0 postgresql版本为13.7 2. 安装JDK11.0.2 将openjdk-11.0.2_linux-x64_bin.tar.gz放到/usr/…

spring详解(一)

今天我们来学习一个新的框架spring!!! spring是什么呢? spring是2003年兴起的,是一款轻量级、非侵入式的IOC和AOP的一站式的java开发框架&#xff0c;为简化企业即开发而生。 轻量级&#xff1a;spring核心功能的jar包不大 非侵入式&#xff1a;我们的业务代码不需要继承或…

linux parted 方式挂盘,支持大于4T盘扩容

此 内容与之前的linux mbr转gpt格式有些重复&#xff0c;但为了便于查询&#xff0c;还是单抽出相关内容&#xff0c;进行操作&#xff1a; 1.查询要挂的有磁盘路径, 输入 parted -l 。 2 . 进入parted对/dev/vdb盘的交互方式&#xff1a;输入&#xff1a; parted /dev/vdb&am…

Spring Cloud Gateway 网关组件及搭建实例

Spring Cloud Gateway 是 Spring Cloud 团队基于 Spring 5.0、Spring Boot 2.0 和 Project Reactor 等技术开发的高性能 API 网关组件。Spring Cloud Gateway 旨在提供一种简单而有效的途径来发送 API&#xff0c;并为它们提供横切关注点&#xff0c;例如&#xff1a;安全性&am…

Linux 线程控制 —— 线程取消 pthread_cancel

线程退出pthread_exit只能终止当前线程&#xff0c;也就是哪个线程调用了pthread_exit&#xff0c;哪个线程就会退出&#xff1b;但是线程取消pthread_cancel &#xff0c;不光可以终止自己&#xff0c;还可以终止其他线程。 》自己终止自己&#xff0c;没问题&#xff01; 》…

Android ViewPager2 + TabLayout + BottomNavigationView

Android ViewPager2 TabLayout BottomNavigationView 实际案例 本篇主要介绍一下 ViewPager2 TabLayout BottomNavigationView 的结合操作 概述 相信大家都看过今日头条的的样式 如下: 顶部有这种tab 并且是可以滑动的, 这就是本篇所介绍的 ViewPager2 TabLayout 的组合…