当前位置:Gxlcms > 数据库问题 > SQL语句的执行顺序--知道执行顺序,顺便可以做优化了,对吧

SQL语句的执行顺序--知道执行顺序,顺便可以做优化了,对吧

时间:2021-07-01 10:21:17 帮助过:4人阅读

查询语句中select from where group by having order by的执行顺序   1.查询中用到的关键词主要包含六个,并且他们的顺序依次为  select--from--where--group by--having--order by  其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序  与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行      from--where--group by--having--select--order by,      from:需要从哪个数据表检索数据      where:过滤表中数据的条件      group by:如何将上面过滤出的数据分组      having:对上面已经分组的数据进行过滤的条件       select:查看结果集中的哪个列,或列的计算结果      order by :按照什么样的顺序来查看返回的数据    2:解析顺序     from: 自右向左解析(数据量大的,放在最右边)      where:自下而上(能过滤掉大量数据的条件放在下边)   3:子句     from 子句 --执行顺序为从后往前、从右到左,         最后边的表为驱动表,从后往前解析,作为驱动表,当然越快越好,所以数据量少的放在最后       where 子句 --执行顺序为自下而上、从右到左         可以过滤掉最大数量记录的条件必须写在Where 子句的末尾。      group by--执行顺序从左往右分组(一般都是自右向左,这个较为特殊,自左向右)         提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。即在GROUP BY前使用         WHERE来过虑,而尽量避免GROUP BY后再HAVING过滤。      having 子句----很耗资源,尽量少用          避免使用having子句,为什么呢,因为他需要检索出所有记录后对结果集进行过滤,这个过程包括了排          序和总计操作,所以效率低     order by子句--执行顺序为从左到右排序,很耗资源(一般都是自右向左,这个较为特殊,自左向右)     4:on、where、having     执行顺序是on、where、having     1)多表联查,eg:tabA、tabB         select a.column1, b.columnB from tabA a,tabB b            on a.a_id = b.b_id        where             省略        having    多表联查的时候才用到on,联查的话肯定表要先关联呀,所以,就会先执行on     having本来就是在where执行后,获得的结果集再进行过滤,所以,先where在having (二)讲一下update     1:节点执行顺序是先update节点where再set修改多个字段时,是从左到右的顺序     eg:update  studentset column1 = ‘aa’,column=‘bb’          where  colunb_id = 10;     肯定先执行呀,--不执行update,你怎么知道操作哪个表哦     再where,--筛选出,要操作的记录     然后set,--都查出来了,最后做修改     2:where后多条件     eg:update  student set column1 = ‘aa’,column=‘bb’          where  colunb_i = 10 and sex = ‘女’    上面不是讲了吗,where子句执行顺序是先下后上,所以会先找性别为女的,再找班级为3的,根据你的实际情况,看先执行哪个条件可以先过滤掉大量数据,就写在下边,效率高点   (三)讲delete咯-- 不讲了,参考(二)     1:删除条件只有一个     eg: delete from student where class_id = ‘3‘   2:删除条件不止一个      delete from student      where          class_id = ‘3‘       and          sex = ‘女’   (四)insert--终于开始新增了     算了不讲了,从左到右执行

SQL语句的执行顺序--知道执行顺序,顺便可以做优化了,对吧

标签:一个   数据表   --   计算   from   nbsp   关联   排序   查看   

人气教程排行