1 概述
2 内链接--inner可以省略
2.1 等值连接
Eg:
2.2 非等值连接
2.3 自连接
找出每一个员工的上级领导,要求显示员工姓名及对应的领导姓名(内连接:自连接)
二、省市
3 外链接(等值)--outer可省略
3.1 左外连接和右外连接
练习:
查看所有人所属的部门名称和员工名称?
selectdept.dname,emp.ename from dept,emp where dept.did = emp.dno;
selectd.dname,e.ename from dept d,emp e where d.did = e.dno;
统计每个部门的人数(按照部门名称统计,分组group by count)
selectd.dname,count(*) from dept d,emp e where d.did = e.dno group by d.dname;
统计部门的平均工资(按部门名称统计,分组group by avg)
selectd.dname,avg(salaly) from dept d,emp e where d.did = e.dno group by d.dname;
3.2 全外连接
4 交叉连接/笛卡尔积
表A 表B
aidaname bid bname
a1 aa1 b1 bb1
a2 aa2 b2 bb2
b3 bb3
*查询的语法
select* from 表A,表B; 返回的结果就是笛卡尔积。
结果:
a1 aa1 b1 bb1
a1 aa1 b2 bb2
a1 aa1 b3 bb3
a2 aa2 b1 bb1
a2 aa2 b2 bb2
a2 aa2 b3 bb3
select * from dept,emp;
5 扩展:多表连接
员工表不部门表连接(e.deptno = d.deptno),再不工资等级表连接(e.sal between s.losal and s.hisal)
原理:A表和B表通过连接条件1连接之后,A表再和C表通过连接条件2进行连接;