表的连接
1、内连接:
-
内连接实际就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。
-
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;
-
显示SMITH的名字和部门名称
-
select ename, dname from emp
[inner] join dept on emp.deptno = dept.deptno;
2、外连接:
a、左连接:
-
左侧的表完全显示我们就说是左外连接。
-
select 字段名 from 表名1 left join 表名2 on 连接条件
b、右连接:
-
右侧的表完全显示我们就说是右外连接。
-
select 字段 from 表名1 right join 表名2 on 连接条件;
案例分析:
-
查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来
-
1.select * from stu
-
left join exam on stu.id = exam.id;
-
2.select * from exam
right join stu on stu.id = exam.id;
-
列出部门名称和这些部门的员工信息,同时列出没有员工的部门
-
1.select dept.dname, emp.* from dept
-
left join emp e on dept.deptno=emp.deptno;
-
2.select dept.dname, emp.* from emp
right join dept d on dept.deptno=emp.deptno;