MYSQL学习心得(4) --SQL语句执行顺序
来源:互联网 发布:人人商城 源码 编辑:程序博客网 时间:2024/06/02 07:30
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 :按照什么样的顺序来查看返回的数据
from 子句--执行顺序为从后往前、从右到左
表名(最后面的那个表名为驱动表,执行顺序为从后往前, 所以数据量较少的表尽量放后)
oracle 的解析器按照从右到左的顺序处理,FROM 子句中的表名,FROM 子句中写在最后的表(基础表 driving table)将被最先处理,即最后的表为驱动表,在FROM 子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3 个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指被其他表所引用的表
多表连接时,使用表的别名并把别名前缀于每个Column上。可以减少解析的时间并减少那些由Column 歧义引起的语法错误.
where子句--执行顺序为自下而上、从右到左
ORACLE 采用自下而上从右到左的顺序解析Where 子句,根据这个原理,表之间的连接必须写在其他Where 条件之前, 可以过滤掉最大数量记录的条件必须写在Where 子句的末尾。
group by--执行顺序从左往右分组
提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。即在GROUP BY前使用WHERE来过虑,而尽量避免GROUP BY后再HAVING过滤。
0 0
- MYSQL学习心得(4) --SQL语句执行顺序
- MySQL--sql 语句执行顺序
- Mysql SQL 语句执行顺序
- mysql sql语句执行顺序
- SQL语句执行顺序(MySQL)
- mysql sql语句执行顺序
- MySQL sql语句执行顺序
- mysql sql语句执行顺序
- mysql 执行顺序 SQL语句执行顺序分析
- mysql 执行顺序 SQL语句执行顺序分析
- mysql 执行顺序 SQL语句执行顺序分析
- mysql 执行顺序 SQL语句执行顺序分析
- MySql SQL语句执行的顺序
- Mysql----SQL查询语句执行顺序
- MySQL中SQL语句的执行顺序
- SQL语句执行顺序
- sql 语句 执行顺序
- SQL语句执行顺序
- 跨节点走IB网络任务报错
- 父类子类指针相互转换问题
- file_put_contents的用法
- CSS3 Gradient按钮demo
- 【JqGrid】JqGrid前端分页+排序+查询条件
- MYSQL学习心得(4) --SQL语句执行顺序
- python+flask
- Git SSH Key 生成步骤
- win10下IIS网站局域网无法访问的解决方法
- Wireshark 命令行捕获数据
- web.xml is missing and <failOnMissingWebXml> is set to true
- TODO:Golang语言TCP/UDP协议重用地址端口
- jquery中取消hover事件绑定
- mysql安全向导mysql_secure_installation解释