09 子查询

数据库关联子查询和非关联子查询

非关联子查询:数据库嵌套查询中内层查询是完全独立于外层查询的。

执行顺序:

  • 先执行内层查询
  • 得到内层查询的结果后带入外层,再执行外层查询

select * from tableA where tableA.column  = (select tableB.column from tableB )

关联子查询:数据库嵌套查询中内层查询和外层查询不相互独立,内层查询也依赖于外层查询。

执行顺序:

  • 先从 外层查询中查询中一条记录
  • 再将查询到的记录放到内层查询中符合条件的记录,再放到外层中查询
  • 重复以上步骤

select * from tableA where tableA.cloumn < (select column from tableB where tableA.id = tableB.id))<br>所以是:先查询到到一条tableA的记录;
进入内层查询,根据tableA.id在tableB中找到满足tableB.id与之相等的记录,如果找到符合A表那条记录的column值

in和exist区别

SELECT * FROM A WHERE cc IN (SELECT cc FROM B)

SELECT * FROM A WHERE EXIST (SELECT cc FROM B WHERE B.cc=A.cc)

使用in ,sql语句是先执行子查询,也就是先查询b表,再查a表,而使用exists是先查主表a ,再查子表b;

对于主表数据较多时,我们使用in速度比exist更快,反之,从表b较大时,使用exist查寻速度更快(都会使用索引)

如果使用的是not in与not exists,直接使用not exists,因为not in 会进行全表扫描不走索引,not exists会走索引。

09 子查询

SELECT player_id, player_name, height FROM player WHERE height > ANY (SELECT height FROM player WHERE team_id = 1002)

将子查询作为计算字段

SELECT team_name, (SELECT count(*) FROM player WHERE player.team_id = team.team_id) AS player_num FROM team

09 子查询

Original: https://www.cnblogs.com/ydssx7/p/16156529.html
Author: ydssx
Title: 09 子查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/619789/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL查询性能优化七种武器之索引下推

    前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下: MySQL查询性能优化七种武器之索引潜水 MySQL查询性能优化七种武器之链路追踪 今天要讲的是MySQL的另…

    数据库 2023年5月24日
    095
  • MySql 删除数据表

    定义: 删除数据表就是将数据库中已经存在的表从数据库中删除。注意,在删除表的同时,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据做一个备份,以免造成无…

    数据库 2023年6月14日
    078
  • 关于在vue项目中引入<el-img>标签失败的问题

    问题如下 语法没有写错,但是冒号错了,不能在img后面紧接着冒号 只能在src前面紧接着冒号 Original: https://www.cnblogs.com/ly-heker/…

    数据库 2023年6月11日
    079
  • DM8数据库备份还原的原理及应用

    ▷▶介质管理层(MML) DM8根据自身实现自定义了一套API接口SBT来负责备份数据在存储介质上的实际读写操作。 整个存储介质上的读写操作,由MML调用SBT完成。 目前 DM8…

    数据库 2023年6月11日
    079
  • 深入汇编指令理解Java关键字volatile

    volatile是什么 volatile关键字是Java提供的一种轻量级同步机制。它能够保证可见性和有序性,但是不能保证原子性 可见性 对于volatile的可见性,先看看这段代码…

    数据库 2023年6月16日
    078
  • 常用函数封装汇总

    常用函数封装 获取某日期若干个工作日后的日期 * &#x53C2;&#x6570;: * time: [String] &#x7ED9;&#x5B9…

    数据库 2023年6月11日
    0105
  • Android Studio的初次认识

    Android的初试 一、认识Android Studio 在我们新建项目的时候,会遇到这样的一个窗口,首先我们认识一下这些都是什么,这样我们才能够更好的进行下一步的学习! 这里的…

    数据库 2023年6月11日
    0118
  • 实时展示用户上传的头像

    实时展示用户上传的头像 总体思路 """ 1.&#x9996;&#x5148;&#x9700;&#x8981;&amp…

    数据库 2023年6月14日
    071
  • Guava中的封装的Map操作

    引入依赖 <dependency> <groupId>com.google.guavagroupId> <artifactId>guava…

    数据库 2023年6月14日
    0144
  • 模板语法之传值取值

    模板语法之传值 变量相关使用:{{}}逻辑语法相关:{% %} 后端传值部分: def index(request): # &#x6A21;&#x7248;&amp…

    数据库 2023年6月14日
    066
  • Docker 完整版教程

    Docker 安装 一、安装前必读 在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。 注意:本文的…

    数据库 2023年6月14日
    078
  • Mysql_视图

    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由…

    数据库 2023年6月11日
    079
  • JDBC

    JDBC 一、JDBC概述 什么是JDBC? JDBC 是使用 Java 语言操作关系型数据库的一套 API。这套 API 是交由不同的数据库厂商实现的。我们利用 JDBC 编写操…

    数据库 2023年5月24日
    080
  • AI 音辨世界:艺术小白的我,靠这个AI模型,速识音乐流派选择音乐 ⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 机器学习实战系列:https://www.s…

    数据库 2023年6月14日
    084
  • 平均工资:部门与公司比较

    力扣(LeetCode)615. 平均工资:部门与公司比较 困难难度数据库题目 一. 题目 给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资…

    数据库 2023年6月11日
    073
  • ReentrantLock 公平锁源码 第0篇

    ReentrantLock 0 关于ReentrantLock的文章其实写过的,但当时写的感觉不是太好,就给删了,那为啥又要再写一遍呢 最近闲着没事想自己写个锁,然后整了几天出来后…

    数据库 2023年6月16日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球