今天遇到一个问题就是mysql中insert into 和update以及delete语句中能使用as别名吗?目前还在查看,但是在查阅资料时发现了一些有益的知识,给大家分享一下,就是关于sql以及MySQL语句执行顺序:
sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。
一、sql执行顺序
(1)from
(2) on
(3) join
(4) where
(5)group by(开始使用select中的别名,后面的语句中都可以使用)
(6) a
问题
昨天在写数据库SQL的时候遇到一个问题。问题的根结在SQL语句的AND和OR关键字的执行优先级问题。下面就针对这个问题进行一下测试。
场景
1、有一张学生表Student,表字段包括Id(用户主键)、Name(用户名)、Grade(年级)、Class(班级)、Sex(性别)。如下:
表结构
2、在表中导入十条测试数据,如下:
表数据
3、现需要查询出性别为女的1年级女学生,或者性别为女的2班级女学生。SQL语句如下:
select * from student where se
在写sql的时候,由于有部分语句别名不能调用,百度了一下原因,原来是由于别名机制不同引起的。为了避免下一次再犯同样的错误,今天把网上找到资料总结了一下,sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。 一、sql执行顺序 (1)from (3) join (2) on (4) where (5)group by (6) avg,sum…. (7)having (8) select (9) distinct (10) order by 从这个顺序中我们不难发现,所有的