首页
学习
活动
专区
圈层
工具
发布

SQL 基础--> 子查询

--========================= --SQL 基础--> 子查询 --========================= /* 一、子查询 子查询就是位于SELECT、UPDATE...、或DELETE语句中内部的查询 二、子查询的分类 单行子查询 返回零行或一行 多行子查询 返回一行或多行 多列子查询 返回多列 相关子查询 引用外部SQL语句中的一列或多列 嵌套子查询...FROM table); /* 子查询(内部查询)在执行主查询之前执行一次 然后主查询(外部查询)会使用该子查询的结果 四、子查询的规则 将子查询括在括号中 将子查询放置在比较条件的右侧...只有在执行排序Top-N分析时,子查询中才需要使用ORDER BY 子句 单行运算符用于单行子查询,多行运算符用于多行子查询 五、单行子查询 仅返回一行 使用单行的表较运算符:= ,>, >...子查询中使用了主查询中的某些字段,主查询每扫描一行都要执行一次子查询 */ --查询工资高于同一部门的员工的部门号,姓名,工资 SQL> select deptno,ename,sal 2

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    sql的子连接查询

    本文链接:https://blog.csdn.net/luo4105/article/details/51397825 一直没有注重于sql这一块,现在的项目有大量的统计,报表,以前都是多表连接或者用...mybatis的延迟加载之类的,这几天心血来潮自己查了一下,发现了sql子查询这个好东西,感觉方便多了,速度也快多了(自我感觉)。...of course,以后还是要多用函数,好一点。...sql的子查询是可以在把数据查出来后在查出一条其他表的关联数据的一项(多项或者多条都会报错), 比如我们要查询用户表(user)并加上一个列(rolename)表示它代表的权限的名字,那么我们可以这么写...span style="font-family: Arial, Helvetica, sans-serif;">) as a from user 甚至我们还可以添加一些常量进去(对于sql

    6K20

    T-sql 高级查询( 5*函数 联接 分组 子查询)

    目录 联接查询 子查询 分组查询 函数的应用 系统函数 字符串函数​编辑 实例 日期函数 实例 数学函数 实例 聚合函数 实例 T-SQL 高级查询是指在 T-SQL 中使用的复杂查询,可以用于执行复杂的操作...T-SQL 高级查询包括以下几类: 联接查询:联接查询用于连接两个或多个表。联接查询可以分为内连接、外连接和自连接。 子查询:子查询是一种嵌套在另一个查询中的查询。...子查询可以用于过滤、聚合或计算数据。 窗口函数:窗口函数是一种在指定窗口内对数据进行操作的函数。窗口函数可以用于计算移动平均值、排名或分位数等。 聚合函数:聚合函数用于对数据进行汇总操作。...分组查询:分组查询用于将数据分组,并对每个组进行操作。分组查询可以与聚合函数一起使用。...Customers INNER JOIN Customers AS C2 ON Customers.CustomerID = C2.CustomerID AND Customers.City = C2.City; 子查询

    1.3K10

    MySQL(联合查询、子查询、分页查询)

    SQL语句内部的查询语句。...子查询分类: 按结果及行数分: 1、 标量子查询(单行子查询:结果集只有一行一列) 2、 列子查询(多行子查询:结果集多行一列) 3、 行子查询(结果集有多行多列) 4、 表子查询(结果集有多行多列)...按出现位置分: 1、 SELECT 后面:只能出现标量子查询 2、 FROM 后面:表子查询(查询结果必须起别名) 3、 WHERE|HAVING:支持标量子查询,列子查询,行子查询 4、 EXISTS...后面:支持表子查询 代码实例: 查询订单信息,并显示用户姓名 SELECT a....; 如果offset为0 SELECT * FROM b_user LIMIT 2; 注意: 在SQL Server中使用top关键字进行分页;所谓top 7,代表查询前7条记录。

    21.9K20

    MySQL 子查询 嵌套查询

    MySQL 子查询 嵌套查询 一、带IN关键字的子查询 二、带EXISTS关键字的查询 三、带ANY、SOME 关键字的子查询 四、带ALL 关键字的查询 自言自语 一、带IN关键字的子查询 使用IN...关键字进行子查询的时候,内层查询语句仅仅返回一个数据列。...,没有查到就不进行查询。...语法格式: SELECT 查询字段 FROM 表名 WHERE [NOT] EXISTS (SELECT 语句); 三、带ANY、SOME 关键字的子查询 ANY 、SOME 是表示满足其中任一条件,就允许创建一个表达式对子查询的返回值列表进行比较...只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。 (满足任意一个) 语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 比较运算符(>,<..)

    17.5K40

    子查询与子查询的分类(一)

    在 SQL 中,子查询是一个查询嵌套在另一个查询中的查询,也被称为内部查询。子查询可以用来创建更复杂的查询,从而实现更高级的数据检索和分析。...子查询的分类子查询可以根据其位置和返回结果的数量和数据类型分为以下三种类型:标量子查询:返回一个单一值的查询,通常用于作为 WHERE 子句或 SELECT 子句中的表达式。...first_name, last_name, salaryFROM employeesWHERE salary > (SELECT AVG(salary) FROM employees);在这个例子中,子查询...product_category_id IN (SELECT category_id FROM categories WHERE category_name = 'Electronics');在这个例子中,子查询...表子查询:返回一个表格作为查询结果的查询,通常用于 FROM 子句中的表达式。

    3.6K50

    子查询与子查询的分类(二)

    使用子查询子查询可以嵌套在 SELECT、FROM、WHERE 和 HAVING 子句中,以实现更复杂的数据检索和分析。...在使用子查询时,需要注意以下几点:子查询必须始终放在括号中;子查询可以是标量、列或表子查询;子查询可以使用运算符、聚合函数和其他 SQL 语句;子查询的结果必须与主查询的数据类型兼容。...以下是一些常见的子查询用法示例:在 WHERE 子句中使用子查询SELECT customer_name, credit_limitFROM customersWHERE customer_id IN...(SELECT customer_id FROM orders WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31');在这个例子中,子查询 (SELECT...COUNT(*) FROM orders WHERE customer_id = customers.customer_id) AS order_countFROM customers;在这个例子中,子查询

    3.2K10

    SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    注:这里只能求出最大年龄,要想显示年龄最大的学生全部信息,需要用到之后的子查询。 数据分组(GROUP BY): SQL中数据可以按列名分组,搭配聚合函数十分实用。...这时就需要用到子查询来取得完整的信息。 什么是子查询?子查询就是嵌套在主查询中的查询。...接下来回到上面的SQL语句中,可以看出本条子查询的嵌套是在SELECT位置(括号括起来的部分),它与学号、学生姓名以逗号分隔开并列在SELECT位置,也就是说它是我们想要查出的一列, 子查询中查出的是,...上文说过相关子查询不推荐使用,组合查询又用的少之又少,那需要关联的多张表我们怎么做? 这就是下一篇博文要详细说明的SQL的重点表联接、联接查询。...而此篇博文目的是为了对嵌套查询、别名的用法等等打下基础,毕竟只是写法变了,思路还是相似的。 感谢您的浏览,希望能对您有所帮助。

    7K30

    mysql的查询、子查询及连接查询

    #把上面的查询结果理解为一个临时表[存在于内存中]【子查询】 #再从临时表中选出每个栏目最贵的商品 select *...把表达式放在每一行中,看是否成立 2、字段(列),理解为变量,可以进行运算(算术运算和逻辑运算) 3、 取出结果可以理解成一张临时表 二、mysql子查询...1、where型子查询 (把内层查询结果当作外层查询的比较条件) #不用order by 来查询最新的商品 select goods_id...(把内层的查询结果供外层再次查询) #用子查询查出挂科两门及以上的同学的平均成绩 思路: #先查出哪些同学挂科两门以上...name from (select name,count(*) as gk from stu having gk >=2) as t) group by name; 3、exists型子查询

    17.5K80

    【T-SQL基础】03.子查询

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化。 本系列【T-SQL基础】主要是针对T-SQL基础的总结。...关键词解释: 外部查询:查询结果集返回给调用者 内部查询:查询结果集返回给外部查询。 独立子查询:独立子查询独立于其外部查询的子查询,可以单独运行子查询。...在逻辑上,子查询会为每个外部行单独计算一次。 标量子查询:返回单个值的子查询。标量子查询可以出现在外部查询中期望使用单个值的任何地方。 多值子查询:在一个列中 为什么要使用子查询?...如果子查询查询结果又多条,SQL SERVER引擎查询出一条记录后,就会立即返回,这种处理方式叫做短路处理。...Exist谓词只关心是否存在匹配行,而不考虑SELECT列表中指定的列,所有使用SELECT * FROM TABLE,并没有什么负面影响,但是为了展开*代码的列名会有少少量的开销,但是还是推荐使用*通配符

    2.6K60

    SQL学习之学会使用子查询

    1、SELECT语句是SQL的查询。我之前的随笔中所用的SELECT语句都是简单的查询,即从单个数据库表中检索数据的单条SELECT语句。...查询:任何SQL语句都是查询,但此术语一般指SELECT语句。 2、SQL不仅允许简单的SELECT查询,还允许创建子查询,即嵌套在其他查询中的查询。...子查询所需要用到的sql文件。...3、下面是使用子查询必须知道的几点: (1)很重要的一点,作为子查询的SELECT语句只能查询单个列。企图检索多个列将返回错误(上面列子中的第(2)步已给出证明)。...(2)子查询的性能:上面给出的列子中的代码有效,并且获得了所需的结果。但是使用子查询并不总是执行这类数据检索最有效的方法。

    2.3K70

    Mysql常用sql语句(19)- in exists 子查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 子查询在我们查询方法中是比较常用的,通过子查询可以实现多表查询...子查询是指:将一个查询语句嵌套在另一个查询语句中 子查询可以在select、update、delete语句中使用,还可以进行多层嵌套 子查询的语法格式 WHERE (子查询)...可以看看子查询 sql 的查询结果 select id from dept where name = "财务部" or name ="销售部" ?...其实就是上面栗子结果集的取反 exists 栗子 SQL分析 从 dept 表中查询 id = 1 的记录,若有,exists 表达式则返回True 外层查询语句接收到 True 之后,对 emp 表进行查询...知识点 子查询的功能其实通过表连接(join)也可以完成 一般来说,表连接(内连接、外连接等)都可以用子查询查询,但反过来却不一定,有的子查询不能用表连接来替换 子查询比较灵活,适合作为查询的筛选条件

    1.8K20

    SQL 子查询怎么优化?写的很深!

    ---- 子查询 (Subquery)的优化一直以来都是 SQL 查询优化中的难点之一。关联子查询的基本执行方式类似于 Nested-Loop,但是这种执行方式的效率常常低到难以忍受。...子查询简介 子查询是定义在 SQL 标准中一种语法,它可以出现在 SQL 的几乎任何地方,包括 SELECT, FROM, WHERE 等子句中。...总的来说,子查询可以分为关联子查询(Correlated Subquery) 和非关联子查询(Non-correlated Subquery) 。...非关联子查询不在本文讨论范围之列 ,除非特别声明,以下我们说的子查询都是指关联子查询。...虽然理论上任意子查询都可以处理,但是实际上,没有任何一个已知的 DBMS 实现了所有这些变换规则。 ► HyPer 和 SQL Server 的做法有什么异同?

    4.7K30

    MariaDB 连接查询与子查询

    ,在SELECT子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表....一般的子查询中常用的操作符有ANY(SOME),ALL,IN,EXISTS.子查询可以添加到SELECT、UPDATE和DELETE 语句中,而且可以进行多层嵌套.子查询中也可以使用比较运算符,如子查询◆IN关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值将提供给外层查询语句进行比较操作.IN查询1: 查询lyshark表中的Uid='a1'的GId号,并以Gid作为查询条件查询...◆EXISTS 子查询◆EXISTS关键字后面的参数是一个任意的子查询,系统对子查询进行运算以判断它是否返回行,如果至少返回一行,那么EXISTS的结果为true,此时外层查询语句将进行查询.如果子查询没有返回任何行...◆比较运算符子查询◆在前面介绍的带ANY,ALL关键字的子查询时使用了>比较运算符,子查询时还可以使用其他的比较运算符,如,>=,=,!

    5.7K30

    MySQL子查询

    在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。...上层的查询块曾为父查询或外层查询。子查询的结果作为输入传递回“父查询”或“外部查询”。父查询将这个值结合到计算中,以便确定最后的输出。...一、子查询概述 1.1、什么是子查询 子查询是一种常用计算机语言sql中select语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。...一个查询的结果做为另一个查询的条件 有查询的嵌套,内部的查询称为子查询 子查询要使用括号 1.3、子查询结果的三种情况 单行单列 多行单列 多行多列 二、单行单列查询 子查询结果只要是单行单列,...子查询结果只要是单行多列,结果集类似于一个数组,父查询使用in、not in运算符 格式: select */字段列表 from 数据库表名 where 字段名 in (子查询); 案例: 查询工资大于

    7.4K11

    Hive 子查询

    必须为子查询指定名称,因为FROM子句中的每个表都必须具有名称。子查询 SELECT 列表中的列必须具有独一无二的名称。子查询 SELECT 列表中的列可以在外部查询中使用,就像使用表中的列一样。...子查询也可以是带 UNION 的查询表达式。Hive支持任意级别的子查询。 在Hive 0.13.0及更高版本(HIVE-6519)中可选关键字 AS 可以包含的子查询名称之前。...WHERE中的子查询 从Hive 0.13开始,WHERE子句中支持某些类型的子查询。...可以将这些子查询的结果视为 IN 和 NOT IN 语句中的常量(我们也称这些子查询为不相关子查询,因为子查询不引用父查询中的列)。...IN/NOT IN 子查询只能选择一列。 EXISTS/NOT EXISTS 必须有一个或多个相关谓词。 对父查询的引用仅在子查询的WHERE子句中支持。

    8.2K41

    数据库圣经--聚合查询 子查询 分组查询 合并查询

    导入初始化 SQL 文件命令:\. d:\database\student.sql作用:通过 MySQL 的source命令(简写为\.)...,导入指定路径下的student.sql文件 —— 该文件通常包含表结构创建语句、初始数据插入语句,用于快速初始化数据库。...一、子查询的核心分类逻辑 子查询的本质是「嵌套在主查询中的小型查询」,其用法完全由两个因素决定: 结果形态:子查询返回的数据结构(单行单列 / 多行单列 / 多行多列等); 嵌套位置:子查询在主查询中的位置...、顺序必须与子查询完全一致(如示例 1 中(salary, dept_id)对应子查询的(salary, dept_id)); 兼容性:MySQL、Oracle、PostgreSQL 均支持,但 SQL...dept_id FROM departments ); 四、子查询的进阶用法:关联子查询 vs 非关联子查询 之前的示例中包含两种隐性逻辑,这是子查询的进阶分类,决定了查询效率: 1.

    58510
    领券