当想要查询公司中薪水前十高的员工时,以下语句将无法执行
这是因为sql的语句执行是有顺序的,这里说的顺序是一条sql语句里的执行顺序
sql语句的执行顺序
- from 表名
定位到某个确定的表,读取指定表的数据 - join 表名
进行表的连接 - on 条件
对连接后的表进行按条件筛选 - where 条件
进行第一次满足条件的数据筛选 - group by 字段名
按照字段对数据进行分组 - 五类聚合函数
count sum min max avg - having 条件
对于分组后的数据进行筛选 - select 字段名
从前面筛选好的数据中,选择部分字段进行显示 - distinct 字段名
对字段进行去重 - order by 字段名 排序方式
按照指定字段进行排序
order by 放在最后执行避免了大量的冗余计算
如果是mysql 最后执行的是limit
limit num
限制最终显示的元组数目
但oracle中没有limit