数据库sql语句的exists使用说明
2017-08-27 22:59
232 查看
前言:
EXISTS语法并没有说哪个字段落在了子查寻的结果中,而是说exists后面的语句执行的结果是不是有记录,只要有记录,则主查询语句就成立。它代表‘存在’,用来引领嵌套查询的子查询,它不返回任何数据,只产生逻辑真值‘true’与逻辑假值‘False’。由EXISTS引出的子查询,其目标列表达式通常都用*(用null也可以),因为带有EXISTS的子查询只返回真值或假值,给出列名没有实际意义。-- 实例 -- in 普通查询 select * from tb_articlecomment ac where article_id in ( select id from tb_article a where a.otherStatus = 1 ) -- exists 高效查询 select * from tb_articlecomment ac where exists ( select null from tb_article a where a.id = ac.article_id and a.otherStatus = 1 )
exists的优点:
exists的优点是:只要存在就返回了,这样的话很有可能不需要扫描整个表。in需要扫描完整个表,并返回结果。
所以,在字表比较小的情况下,扫描全表和部分表基本没有差别;但在大表情况下,exists就会有优势。
根据详见:
http://www.cnblogs.com/jerome-rong/archive/2013/03/27/2985505.html
相关文章推荐
- 新建数据库,然后使用SQL语句创建表、存储过程、用户说明
- 数据库详细说明之SQL语句使用汇总
- 用sql语句取出mysql 数据库中表的字段的说明信息
- AppFramework1.0数据库访问组件使用说明(七)SqlTemplate与SqlMap的使用
- 提取数据库内所有表的字段详细说明的SQL语句
- [转] 在 MySQL 数据库中使用 C 执行 SQL语句
- 使用SQL语句获取数据库中随机N个记录
- 数据库知识—SQL查询语句精华使用简要
- Visual C# 2008+SQL Server 2005 数据库与网络开发--9.4.1 在模板中使用T-SQL语句
- 使用SQL语句清空数据库所有表的数据
- 数据库基类方法(直接使用SQL语句或存储过程调用)
- 使用 SQL 语句从数据库一个表中随机获取一些数据
- 在 MySQL 数据库中使用 C 执行 SQL 语句
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 9.3 XML相关的SQL语句使用
- [数据库使用技巧]动态生成sql语句_网络大本营
- 数据库知识—SQL查询语句精华使用简要
- 使用Sql语句从数据库读出数据字典(Good)
- 数据库知识-SQL查询语句精华使用简要
- 返回数据库内所有表的字段详细说明的SQL语句 (转)
- mysql导出数据库表的创建sql语句(使用mysql control center/MYSQL-Front)