永发信息网

oracle sql语句中 先执行where还是order by

答案:4  悬赏:40  手机版
解决时间 2021-03-21 15:54
  • 提问者网友:容嬷嬷拿针来
  • 2021-03-20 19:23
oracle sql语句中 先执行where还是order by
最佳答案
  • 五星知识达人网友:夜余生
  • 2021-03-20 20:51
where 里面条件 and 是先执行 and 前面 还是后面条件这个其实和你写的顺序不大,这个先后顺序,是数据库来根据表/索引的信息来决定的。例如一个 学生表, 有学号,姓名,性别其中 学号是主键, 姓名上面有个索引。 找 名字叫 强妹 的女生: SELECt * FROM 学生 WHERe 姓名='强妹' AND 性别 = '女' 与 SELECt * FROM 学生 WHERe 性别 = '女' AND 姓名='强妹' 数据库在处理 SQL 以前,都会去分析, 发现 查询的条件中, 姓名上面有索引,而性别上面没有。 那么优先根据 姓名的条件, 去检索,然后再去把通过索引得到的数据,去筛选 性别=女的比如表里面共有10000行。姓名叫 '强妹' 的只有一个。那么通过索引,一步就定位到那一行。然后再判断这一行数据的 性别字段, 是不是 = '女' 假如 姓名/性别 都没有索引呢?那就是执行 全表扫描。不分先后。什么意思呢?就是假如 表里面10000行数据。那就是从第一行开始, 查看 姓名与性别 条件。 满足的返回。 不满足的丢弃。 直到100行都处理完。并不是一口气把所有的数据,都放到内存里面,然后 姓名判断一次, 去掉部分, 性别判断一次,再去掉部分。蓝屏
全部回答
  • 1楼网友:刀戟声无边
  • 2021-03-20 22:50
不知道你有几个where 几个order by ...
  • 2楼网友:不甚了了
  • 2021-03-20 21:54
order by 最后执行
  • 3楼网友:琴狂剑也妄
  • 2021-03-20 21:48
order by 总是最后执行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯