1. distinct 只能出现在所有字段的前方,但是可以结合分组函数使用;
2. 笛卡尔积:两张表的连接查询不加限制,就会出现;(最终数据条数 = 两表记录条数的乘积)
注:加了限制后,匹配的次数不会减少,还是两表记录条数乘积,只不过进行了按条件筛选;(所以应该避免表的连接次数)
3. SQL92 和SQL99语法
- join <=> inner join,可以省略inner,内连接
- 99和92的语法区别
//SQL92 结构不清晰 select e.ename,d.dname from emp e, dept d where e.deptno = d.deptno //SQL99 把连接表的条件、筛选数据的条件划分开 select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno where
- left / right join <=> left / right outer join,可以省略outer,外连接
4. union(效率更高)
相对于表的连接来说,每连接一次新表,则匹配的次数满足笛卡尔积;
使用注意:
-
- union在进行结果合并的时候,要求两个结果集的列数相同;
- 结果集合并时对应列和列的数据类型也必须相同;(MySQL中不报错,Oracle会)
5. limit(在order by之后执行)
作用:将查询结果集的一部分取出来,通常使用在分页查询当中;
用法:limit startIndex, length;
缺省用法:limit index;取前index条记录;
6. 分页:每页显示 pageSize 条记录;
第 pageNo 页:limit (pageNo - 1)* pageSize,PageSize;
startIndex = (pageNo - 1)* pageSize;
7. 总结执行顺序
1. from
2. where
3. group by
4. having
5. select
6. order by
7. limit...
标签:join,pageSize,老杜,limit,MySQL,days.02,deptno,连接 From: https://www.cnblogs.com/LinxhzZ/p/16727999.html