有关sql语句 exist的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关sql语句 exist的问题相关的知识,希望对你有一定的参考价值。
小弟近期学习编程,涉及到一些sql语句处理,
对exist的运行不慎了解,这个词具体应该怎么用呢?
它是什么意思?
说是返回一个true 或 false, 那在 结果为真后,这条语句还执行马?
若为假,即没有数据,又会怎样?
这句相当于
select * from 表A where id in (select id from 表B)
对于表A的每一条数据,都执行select * from 表B where 表B.id=表A.id的存在性判断,如果表B中存在表A当前行相同的id,则exists为真,该行显示,否则不显示 参考技术A exits适合内小外大的查询,in适合内大外小的查询
sql语句原则
整理尘封的文档,sql语句方面的几条原则再次回顾一下。更详细版本
1. 尽量使用临时表扫描替代全表扫描;
2. 抛弃in和not in语句,使用exists和not exists替代;IN和EXISTS的差别是,exists支持短路,in不支持短路,所以如果业务可以用exists最好用exists
3. 模糊查询是否有必要,如没有必要,去掉like语句;
4. 注意建立适当的,符合场景的索引;
5. 避免使用 "*" 号;
6. 避免在where条件中对字段进行函数操作;
7. 对实时性要求不高的报表,允许脏读(with(nolock))。
8.用union代替or或者用union all 代替union
9.能用between不要用in
以上是关于有关sql语句 exist的问题的主要内容,如果未能解决你的问题,请参考以下文章