exists子查询原理及案例分析
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。
EXISTS指定一个子查询,检测行的存在。语法EXISTS subquery参数
subquery是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。
有关更多信息,请参见select中有关子查询的讨论。结果类型Boolean结果值如果子查询包含行,则返回 TRUE。
一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。exists引导的子句有结果集返回,那么exists这个条件就算成立了,
1、select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,
因为不用查字典表。2、查看记录条数可以用select count(1) from mytable;等价于select count(*) from mytable;
举例1
1.emp 员工表
-- ----------------------------
-- Table structure for `emp`
-- ----------------------------
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (`ename` varchar(100) NOT NULL DEFAULT '',`parent_deptno` varchar(100) DEFAULT NULL,PRIMARY KEY (`ename`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of emp
-- ----------------------------
INSERT INTO `emp` VALUES ('吴磊', '30');
INSERT INTO `emp` VALUES ('张旭', '20');
INSERT INTO `emp` VALUES ('徐家俊', '30');
INSERT INTO `emp` VALUES ('文德', '30');
INSERT INTO `emp` VALUES ('李散', '20');
INSERT INTO `emp` VALUES ('李超', '30');
INSERT INTO `emp` VALUES ('江帅', '10');
INSERT INTO `emp` VALUES ('甘坤', '30');
INSERT INTO `emp` VALUES ('程伟', '30');
INSERT INTO `emp` VALUES ('远强', '20');
INSERT INTO `emp` VALUES ('郑军', '20');
2.dept部门表
-- Table structure for `dept`
-- ----------------------------
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (`deptno` varchar(100) NOT NULL DEFAULT '',`dname` varchar(100) DEFAULT NULL,`loc` varchar(100) DEFAULT NULL,PRIMARY KEY (`deptno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of dept
-- ----------------------------
INSERT INTO `dept` VALUES ('10', '会计部', '纽约');
INSERT INTO `dept` VALUES ('20', '调查部', '北京');
INSERT INTO `dept` VALUES ('30', '销售部', '墨西哥');
INSERT INTO `dept` VALUES ('40', '运行部', '杭州');
3.需要优化的sql语句
第一种写法
select * from dept where deptno in (select distinct parent_deptno from emp);
第二种写法效率高
通过外表dept和内表emp关联查询,先查询外表的字段deptno与内表一一进行匹配,如果存在就列出来。
select * from dept d where EXISTS (select * from emp e where d.deptno=e.parent_deptno);
4.两张表查询的结果都是一个样的
案例2、项目中的select1 和exists组合
SELECT * FROM AUTO_DEDUCT_BALANCE_GIVE f
WHERE EXISTS (SELECT 1 FROM LIST_LOAN_BALANCE_D d WHERE f.DUE_BILL_ID=d.DUE_BILL_ID)
通过外表f 和内表d关联查询,先查询外表的字段DUE_BILL_ID与内表一一进行匹配,如果存在就列出来。
exists子查询原理及案例分析相关推荐
- 性能为王:SQL标量子查询的优化案例分析
本篇整理内容是黄廷忠在"云和恩墨大讲堂"微信分享中的讲解案例,SQL优化及SQL审核,是从源头解决性能问题的根本手段,无论是开发人员还是DBA,都应当持续深入的学习SQL开发技能, ...
- MySQL子查询原理分析
01 前言 子查询,通俗解释就是查询语句中嵌套着另一个查询语句.相信日常工作中接触到 MySQL 的同学都了解或使用过子查询,但是具体它是怎样实现的呢? 查询效率如何? 这些恐怕好多人就不太清楚了,下 ...
- MVC原理及案例分析
MVC原理及案例分析 关于MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑 ...
- Oracle数据库:子查询、单行子查询,多行子查询,in,any,all语句,子查询的练习案例
Oracle数据库:子查询.单行子查询,多行子查询,in,any,all语句,子查询的练习案例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 ...
- 子查询(exists子查询)
MySQL子查询(exists子查询) 1:Exists子查询就是用来判断某些条件是否满足(跨表),Exists是接在where之后,Exists返回的结果只有0和1 2:返回结果的演示 SELECT ...
- 图解通信原理与案例分析-26: 5G NR是如何支持海量机器类通信mMTC的?移动通信对物联网的支持
前言: 移动通信最初是解决人与人之间的语音通信,后来发展成了人与人之间的文本通信, 到了4G LTE,已经很好的解决了人与人之间的视频通信. 到了5G,人与人之间的高速率的数据通信在LTE的基础之上得 ...
- 读书笔记之 大型网站技术架构(核心原理与案例分析)
前言 坚持看了十几天的书,终于完成了毕业后第一次静下心来,利用业务时间看书并做笔记的成就了.废话不多说,这回看的是一直很膜拜的李智慧大神写的大型网站技术架构-核心原理与案例分析. 简短的读后感 极其推 ...
- 分布式计算,大型网站技术架构:核心原理与案例分析
这个回答,非常详细. 但是,大部分内容,都来自"大型网站技术架构:核心原理与案例分析". 最近,初步看了这本书,觉得写得太好了,比较系统和全面. 不过,我还是不喜欢吹B" ...
- SQL之EXISTS子查询和IF条件查询
不积跬步,无以至千里. " 今天给大家分享的是SQL的EXISTS子查询和IF条件查询语句. EXISTS EXISTS子查询 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际 ...
最新文章
- 各种语言下 static 详解
- 2019ug最新版本是多少_NX1847:2019年最新版本,从某种意义上来说,也将是终极版本...
- JS(JavaScript)的初了解6(更新中···)
- mysql 介绍 知乎_SQL介绍——Mysql
- SQL -- 数据字典生成工具
- React jsx转换成原生JavaScript的一个例子
- www(apache)服务器的基本设置
- 云小课 | 需求任务还未分解,该咋整!项目管理Scrum项目工作分解的心酸谁能知?
- 去除主页ImageView图片的上下空白
- 24. Element namespaceURI 属性
- 如何使用shell收集linux系统状态,并把结果发给远端服务器
- 我读“世界500强面试题”
- 华东师范大学副校长周傲英:数据赋能,从数据库到数据中台
- HTML+CSS美食静态网页设计
- 《雪鹰领主3D》昨日腾讯玩吧首发! HTML5进入3D游戏时代!
- 19年11月份,我为什么从上一家公司离职
- 一笔画问题中用奇点判断是否可以一笔完成
- 《自控力》第四章读书笔记
- 今天是2014年9月7日
- Jzoj3547 MEX