EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False

EXISTS

指定一个子查询,检测行的存在。

语法

EXISTS subquery

参数

subquery

是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。有关更多信息,请参见select中有关子查询的讨论。

结果类型

Boolean

结果值

如果子查询包含行,则返回 TRUE。

一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。exists引导的子句有结果集返回,那么exists这个条件就算成立了,

http://www.cnblogs.com/fredlau/articles/993829.html

http://www.cnblogs.com/mytechblog/articles/2105785.html

http://blog.csdn.net/xiwu1616/article/details/14160855/

[sql] view plain copy

  1. <span style="font-size:14px;"> Insert into DGDISTRIBUTOR (DGDISTRIBUTORID,ORGCODE,ORGNAME,USERID,DATELASTUPDATED)
  2. select DGDISTRIBUTORseq.nextval,'52004096','丹东市第二人民医院',100005690,sysdate from DGDISTRIBUTOR
  3. where ROWNUM<=1 and not exists (select * from DGDISTRIBUTOR where orgcode = '52004096')</span>

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;

select * from organization where 1=1 and exists(select 1 from organization where orgid >1999999);

1=1为保护作用,在拼装SQL语句时,当后面的条件不成立时有可能会导致整个语句异常。因为where后面不能为空。

当我们只关心数据表有多少记录行而不需要知道具体的字段值时,类似“select 1 from tblName”是一个很不错的SQL语句写法,它通常用于子查询。这样可以减少系统开销,提高运行效率,因为这样子写的SQL语句,数据库引擎就不会去检索数据表里一条条具体的记录和每条记录里一个个具体的字段值并将它们放到内存里,而是根据查询到有多少行存在就输出多少个“1”,每个“1”代表有1行记录,同时选用数字1还因为它所占用的内存空间最小,当然用数字0的效果也一样。在不需要知道具体的记录值是什么的情况下这种写法无疑更加可取。

下面举例示范这种写法的常见用法:

1)列出每个班的学生人数

常规写法

1

2

select class,count (*) as pax from students 

group by class;

更优写法

1

2

select class,count (1) as pax from students 

group by class;

2)列出每个班最年轻的学生资料

常规写法

1

2

3

select a.* from students a where not exists(

select b.sid from students b where b.sid=a.sid 

and b.date_birth>a.date_birth);

更优写法

1

2

3

select a.* from students a where not exists(

select from students b where b.sid=a.sid 

and b.date_birth>a.date_birth);

select 1 from和exists相关推荐

  1. select null from table,exists和not exists 关键字的理解和使用场合

    关键字exists 和not exists AND select null from table select null from table. 这句sql语句的作用:查询表中的数据,如果有则返回为N ...

  2. exists sql用法_彻底弄懂sql select各种查询用法

    相信很多人和我一样,学习sql 就是记忆各种sql的语法,但是记了一大堆的语法,在遇到实际查询问题时又无从下手的感觉.本文主要是针对sql 中select用法的总结,用于帮助大家解决记了相关语法却不知 ...

  3. MySQL 对 CREATE TABLE IF NOT EXISTS SELECT 的处理

    MySQL 支持创建数据表时判断是否存在,存在则不创建,不存在则创建,相应语句如下: --格式 CREATE TABLE IF NOT EXISTS [Table Definition];--示例 C ...

  4. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  5. SQL:EXISTS的用法理解(转)

    摘自:http://www.cnblogs.com/netserver/archive/2008/12/25/1362615.html 比如在Northwind数据库中有一个查询为 SELECT c. ...

  6. oracle中的exists 和not exists 用法详解

    有两个简单例子,以说明 "exists"和"in"的效率问题 1) select * from T1 where exists(select 1 from T2 ...

  7. Sql 语句中 IN 和 EXISTS

    原文链接:  (2条消息)Sql 语句中 IN 和 EXISTS 的区别及应用 - jcpp9527的博客 - CSDN博客 https://blog.csdn.net/wqc19920906/art ...

  8. oracle exists mysql_oracle_in_exists_left-join

    查询A表中的数据没有出现在B表中 mysql> select * from user; +------+-------+ | uid  | uname | +------+-------+ |  ...

  9. oracle exists语句

    前言 书上这么写的,先看from,再看where,最后选出满足的行 select * from A where exists (select * from A where Code=1111) 等同于 ...

最新文章

  1. 如何卸载office201032位_微软官方安装卸载修复工具、恶意软件删除工具,了解下!...
  2. centos 安装mysql5.6.20_CentOS 7 安装MySQL 5.6遇到的疑难杂症小结
  3. 清华教授沈向洋:创新就要做到极致,用开源的方式培养未来的工程师
  4. Python编程基础:第一节 变量Variables
  5. ssh-copy-id命令不存在_Redis(三)- 常见命令
  6. linux shell read line,【Linux shell】while read line
  7. 华为P50 Pro渲染图再曝光:液态镜头、四曲面屏很吸睛
  8. poj2635 同余定理 + 素数筛法
  9. 吃货少女走关西,美食小店大盘点
  10. 在framework和hal添加log
  11. proe把零件转化为stl在unity中使用注意事项
  12. VS2017社区版30天到期无法使用的激活方法——注册用户登录即可
  13. 笔记本连接显示器后没有声音_电脑连接HDMI电视/显示器后没声音怎么解决
  14. python自主学习——Unicode
  15. 【论文笔记】LIME: low-light image enhancement via illumination map estimation
  16. 保研至暗时,九推可能是你最后的机会!
  17. linux系统start x,linux的startx问题
  18. UKey税务系统开票及打票流程
  19. 深度学习辅助决策医疗器械软件审评要点(征求意见稿)
  20. WideResNet(宽残差网络)介绍与代码

热门文章

  1. php intval 四舍五入,PHP与JS---取整数方法int,celi,floor,round 收藏
  2. 二分查找法-floor和ceil函数实现(C++)
  3. APP开发企划 | macOS平台Markdown桌面便笺
  4. php mysql curd_使用PHP操作SQL 完成简单的CURD操作
  5. box-shadow 属性 详解
  6. 小西贝、何小喵看熊猫之观察者设计模式
  7. Java获取指定时间之后的几分钟
  8. CH55X 基于Arduino框架开发程序上传相关注意事项
  9. 设计一个简单的四则计算器
  10. Python之 列表推导式(含例题)