数据库语句执行顺序(Sql中投影与筛选哪个先执行)

本文目录
Sql中投影与筛选哪个先执行
Sql中投影与筛选的操作顺序是先筛选后投影,一般的语法是:
Select 字段列表 from 表名 where 条件
下面解释一下sql的执行顺序:
1 FROM 才是 SQL 语句执行的第一步,并非 SELECT 。数据库在执行 SQL 语句的第一步是将数据从硬盘加载到数据缓冲区中,以便对这些数据进行操作。
2 SELECT 是在大部分语句执行了之后才执行的,严格的说是在 FROM 和 GROUP BY 之后执行的。
3 数据读取到磁盘后,就进行筛选,最后才会组装成投影,也就是字段返回屏幕。
oracle数据库语句执行顺序
先执行
(select
*
from
deptinfo)
因为
完成要用的结果作为一张表临时表,然后又需要用
这个临时表中的rownum
,最外成select
*
from
(select
a.*,rownum
rn
from
(select
*
from
deptinfo)
a
where
rownum《=10)
where
rn》=1
用到了第二成select
的字段
rownum
rn
所以先执行(select
*
from
deptinfo)
再执行(select
a.*,rownum
rn
from
(select
*
from
deptinfo)
a
where
rownum《=10)
最后
select
*
from
(select
a.*,rownum
rn
from
(select
*
from
deptinfo)
a
where
rownum《=10)
where
rn》=1
在 sql中 多行sql语句怎么执行,是从上往下 还是从下往上求解
SQL不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中, 代码按编码顺序被处理。但在SQL语句中,第一个被处理的子句式FROM,而不是第 一出现的SELECT。SQL查询处理的步骤序号:(8) SELECT (9) DISTINCT (11) 《TOP_specification》 《select_list》
2 (1) FROM 《left_table》
3 (3) 《join_type》 JOIN 《right_table》
4 (2) ON 《join_condition》
5 (4) WHERE 《where_condition》
6 (5) GROUP BY 《group_by_list》
7 (6) WITH {CUBE | ROLLUP}
8 (7) HAVING 《having_condition》
9 (10) ORDER BY 《order_by_list》
以上每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这 些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只有最后一步生成的 表才会会给调用者。如果没有在查询中指定某一个子句,将跳过相应的步骤。
逻辑查询处理阶段简介:
1、 FROM:对FROM子句中的前两个表执行笛卡尔积(交叉联接),生成虚拟表 VT1。
2、 ON:对VT1应用ON筛选器,只有那些使为真才**入到TV2。
3、 OUTER (JOIN):如果指定了OUTER JOIN(相对于CROSS JOIN或INNER JOIN) ,保留表中未找到匹配的行将作为外部行添加到VT2,生成TV3。如果FROM子句包 含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤 3,直到处理完所有的表位置。
4、 WHERE:对TV3应用WHERE筛选器,只有使为true的行才插入TV4。
5、 GROUP BY:按GROUP BY子句中的列列表对TV4中的行进行分组,生成TV5 。
6、 CUTE|ROLLUP:把超组插入VT5,生成VT6。
7、 HAVING:对VT6应用HAVING筛选器,只有使为true的组插入到VT7。
8、 SELECT:处理SELECT列表,产生VT8。
9、 DISTINCT:将重复的行从VT8中删除,产品VT9。
10、ORDER BY:将VT9中的行按ORDER BY子句中的列列表顺序,生成一个游标 (VC10)。
11、TOP:从VC10的开始处选择指定数量或比例的行,生成表TV11,并返回给 调用者。
此文转载:中国IT实验室

更多文章:
重装系统后sql数据库修复(系统崩溃后,关于MYSQL恢复数据库的问题!求救啊!)
2025年7月16日 14:30
java队列(Java中关于如何实现多线程消息队列的实例(java多线程通信))
2025年9月26日 04:00
win10安装sql2005(Win10系统能安装SQL2005)
2025年7月12日 04:45
尿白细胞高是什么病(尿常规异常是怎么回事 尿常规白细胞高是什么原因)
2025年12月26日 09:00
competition反义词和同义词(竞争的意思解释 竞争造句 近义词反义词)
2026年3月5日 22:15
caps lock(键盘上的“Caps Lock”键起什么作用)
2026年2月14日 23:30
response paper怎么写(留学作业中的response paper是什么response paper怎么写)
2026年6月30日 18:45
狄利克雷函数qc(狄利克雷函数(Dirichlet Function)有什么用处)
2026年1月13日 18:15
string为什么要用命名空间(想写一个简单的C++程序,由用户输入姓名(一个字符串)然后输出欢迎信息这里姓名用什么来存储呢)
2026年2月8日 07:30
php只能使用mysql(PHP进行Web开发的过程中除了使用MySQL数据库,还可以使用其他的数据库吗)
2025年7月3日 19:15











