Oracle之 SQL语句的执行顺序

当想要查询公司中薪水前十高的员工时,以下语句将无法执行
在这里插入图片描述
这是因为sql的语句执行是有顺序的,这里说的顺序是一条sql语句里的执行顺序

sql语句的执行顺序

  1. from 表名
    定位到某个确定的表,读取指定表的数据
  2. join 表名
    进行表的连接
  3. on 条件
    对连接后的表进行按条件筛选
  4. where 条件
    进行第一次满足条件的数据筛选
  5. group by 字段名
    按照字段对数据进行分组
  6. 五类聚合函数
    count sum min max avg
  7. having 条件
    对于分组后的数据进行筛选
  8. select 字段名
    从前面筛选好的数据中,选择部分字段进行显示
  9. distinct 字段名
    对字段进行去重
  10. order by 字段名 排序方式
    按照指定字段进行排序
    order by 放在最后执行避免了大量的冗余计算

如果是mysql 最后执行的是limit
limit num
限制最终显示的元组数目
但oracle中没有limit

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Oracle执行SQL语句的过程可以分为以下几个步骤: 1. SQL解析:首先,Oracle会打开SQL语句的句柄(cursor),并检查该语句的语法和语义是否符合规则。在这个阶段,只能捕获与SQL语法和语义相关的错误信息,而不能捕获其他错误,如数据库死锁或数据转换错误。 2. 查询优化:优化器根据SQL语句和数据库的统计信息,选择最优的执行计划。执行计划是执行SQL语句时的一系列操作步骤,涉及表扫描、索引扫描、排序、聚合等。 3. 执行计划生成:根据查询优化器生成的最优执行计划,生成执行计划树。执行计划树按照执行顺序描述了SQL语句的具体执行步骤。 4. 执行计划执行:按照执行计划树的顺序,依次执行各个操作步骤,如表扫描、索引扫描、排序、聚合等。在执行过程中,Oracle会根据需要从磁盘或内存中读取数据,并进行相应的操作。 5. 结果返回:执行完成后,将执行结果返回给客户端,供用户查看或处理。 6. 监控和调优:根据执行计划的执行情况,可以对性能进行监控和调优。例如,根据执行耗时、资源消耗等指标,可以调整数据库参数或优化SQL语句,以提高性能和效率。 综上所述,OracleSQL语句执行过程包括SQL解析、查询优化、执行计划生成、执行计划执行、结果返回和监控调优等步骤。这些步骤确保了SQL语句能够被正确解析、优化和执行,并返回正确的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [oracle sql执行过程](https://blog.csdn.net/mensuo1111/article/details/38019579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Oracle中执行SQL过程](https://blog.csdn.net/qq_15765269/article/details/131576914)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值