group by 分组查询、分页查询、连表查询

时间:2024-04-04 20:01:26
1、左连接查询: RIGHT JOIN 
以左表为准,去右表查找;如果没有匹配的数据,所以输出结果数>=左表原数据


2、右连接查询:LEFT JOIN

以右表为准,去左表查找;如果没有匹配的数据,所以输出结果数>=右表原数据


3、内连接查询:INNER JOIN 

例子:我们班的名字叫王猛;

第一种:inner join:

select 字段名1 as 别名1,字段名2 as 别名2....from 表名1 inner join 表名2 on 条件

group by 分组查询、分页查询、连表查询

group by 分组查询、分页查询、连表查询

SELECT * FROM (SELECT sum(sal),avg(sal),count(sal),deptno from emp GROUP BY deptno) a INNER JOIN dept d ON a.deptno=d.deptno


group by 分组查询、分页查询、连表查询

group by 分组查询、分页查询、连表查询


第二种:inner join:

SELECT 别名1.*,别名2.* FROM 表名1 as 别名1 , 表名2 as 别名2 WHERE 条件 

group by 分组查询、分页查询、连表查询

group by 分组查询、分页查询、连表查询

SELECT e.deptno "部门编号",sum(e.sal) "总工资", avg(e.sal) "平均工资",d.dname "部门名称" FROM emp e,dept d

WHERE e.deptno=d.deptno GROUP BY d.deptno

group by 分组查询、分页查询、连表查询

group by 分组查询、分页查询、连表查询


4、having:group by后面条件用having;



group by 分组查询、分页查询、连表查询



5、between...and..

group by 分组查询、分页查询、连表查询


分页查询:
格式:select * from(select rownum r,a.*from(?) a)where r between ? and ?
select*from 表名 limit start,snm;

group by 分组查询、分页查询、连表查询


group by 分组查询:
group by 后面的字段相同的为一组;

   语法:SELECT * FROM表名GROUP BY字段名


group by 分组查询、分页查询、连表查询