1 SQL规范
1.1 Mysql查询语句的执行顺序?
我们一般编写的SQL顺序是:select(字段列表) -> from(表名列表) -> join on(表关联) -> where(条件列表) -> group by(分组字段列表) -> having(分组后条件列表) -> order by(排序字段列表) -> limit(分页参数)。
执行顺序的话,只是把select(字段列表)排序到having(分组后条件查询)的后面。
1.2 Mysql 如何实现多表查询?
这个分了好多种,分为内连接和外连接,还能自连接和子查询,这些都是多表查询
内连接又有两种:
隐式内连接:select ...from 表A,表B where 条件...
显式内连接:select ... from 表A inner join 表B on 条件...
外连接也是两种:
左外连接:select ...from 表A left join 表B on 条件...
右外连接:select ...from 表A right join 表B on 条件...
自连接,比如select ...from 表A 别名1,表A 别名2 where 条件...
子查询又包含了列子查询、行子查询、表子查询
1.3 MYSQL内连接和外连接的区别?
内连接会取出连接表中匹配到的数据,匹配不到的不保留;
而外连接会取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL。
以某一个表为主表后,进行关联查询,不管能不能关联的上,主表的数据都会保留,关联不上的以NULL显示 。