SQL中Exists的用法
SQL中Exists的用法
SQL中Exists的用法语法
EXISTS subquery
参数
subquery
是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。有关更多信息,请参见 Select 中有关子查询的讨论。
结果类型
Boolean
结果值
如果子查询包含行,则返回 TRUE。
说明
EXISTS(包括 NOT EXISTS )子句的返回值是一个BOOL值。 EXISTS内部有一个子查询语句(SELECT ... FROM...), 我将其称为EXIST的内查询语句。其内查询语句返回一个结果集。 EXISTS子句根据其内查询语句的结果集空或者非空,返回一个布尔值。
一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。
Exists是子查询的一种条件形式,通过判断Exists的选择表达式(括号内的部分)的结果,如果存在一行或多行结果记录,则Exists整个子查询结果为真,否则为假。由于我们采用Exists来实现子查询,只需要关心是否存在满足条件的记录,所以选择表达式的选择列表采用*来实现,当然,你也可以在选择列表指明具体的某些列,但这些列将在整个搜索过程中被忽略。
Exists实例
select Resc_id from dbo.Res_Coach
where EXISTS (select * from Res_Coach where Resc_id is null)
查询原理:
遍历dbo.Res_Coach每一条,同时处理where条件(EXISTS (select * from Res_Coach where Resc_id=0) 判断结果为true或者false),为true时拿出该条,false时,放弃该条记录。
-- 1、 where条件中的子查询和主查询没关系
select Resc_id
from dbo.Res_Coach
where EXISTS (select Rese_id from dbo.Res_Excellent where Rese_id Is null )
-- 2、 where条件中得子查询和主查询有关系
select Resc_id
from dbo.Res_Coach
where EXISTS (select Resc_id from dbo.Res_Coach where Resc_id Is null )
实例备注:不管where条件中得子查询和主查询有没有关系,遍历主查询中得每一条时,判断where条件,exists结果为真,where条件返回true,拿出该条记录,where条件返回false, 不返回该记录。
Exists 和 In 的选择
如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in
- laravel查询限制输出设置(laravel 获取某个查询的查询SQL语句方法)
- mysql 索引使用总结(MySQL复合索引的深入探究)
- mysql对null值如何理解(MySQL为Null会导致5个问题个个致命)
- mysql时间戳和datetime对比(MySQL时间设置注意事项的深入总结)
- mysql锁机制图解(详解mysql 中的锁结构)
- sql server 2014配置文件路径(SQL Server 2012 FileTable 新特性详解)
- mysql创建数据库教程(MySQL创建数据库并支持中文字符的操作方法)
- sql语句去除重复记录(使用SQL语句去掉重复的记录两种方法)
- sqlserver 多实例怎么算许可(SQL Server使用row_number分页的实现方法)
- SQLServer清理日志文件方法案例详解(SQLServer清理日志文件方法案例详解)
- php不能用mysql(php写入mysql中文乱码的实例解决方法)
- php 数据库查询并写入(PHP实现单条sql执行多个数据的insert语句方法)
- mysql使用步骤(聊一聊MySQL角色Role功能)
- mysql运算符使用方法(MySQL <>和<=> 运算符介绍)
- 查询按照部门分组的mysql语句(Mysql根据某层部门ID查询所有下级多层子部门的示例)
- mysql的索引及其介绍总结(浅析MysQL B-Tree 索引)
- 双十二(双十二和双十一哪个划算)
- 佛肚竹盆景的养护之道(佛肚竹盆景的养护之道)
- 包水饺(包水饺手法怎么包视频)
- 越南河粉(越南河粉来自哪里)
- 按这几方面养护佛肚竹盆景,保证枝叶繁茂,造型优美(按这几方面养护佛肚竹盆景)
- 冰岛旅游攻略(冰岛旅游攻略及花费八日游)
热门推荐
- mvc razor 输出html
- php如何实现异步调用(php基于协程实现异步的方法分析)
- css3 media媒体查询
- docker 环境下udp双向通信怎么办(解决Docker network Create加--subnet后遇到问题)
- phpstudy中apache到期如何修改(phpStudy找不到Apache“服务名” 解决方法)
- thinkphp5.0实例详解(ThinkPHP5&5.1框架关联模型分页操作示例)
- 租用云服务器或者云主机价格(云主机租用注意事项有哪些?)
- .NET中比较实用的开发工具
- python线程自动停止了(解决Python中定时任务线程无法自动退出的问题)
- datatable和list的转换
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9