内连接
内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选,前面所说过的查询都是内连接,也是在开发过程中使用的最多的连接查询。
sqlselect 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;inner join : 将两个表按照指定条件关联匹配,只返回两个表中满足连接条件的行。可简写为join
on : 用来指定join的关联条件为连接两个表的核心规则,也可附加筛选条件
显示SMITH的名字和部门名称
用上一篇的写法为

内连接的写法为
sqlselect ename,dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno where ename='SMITH'; select ename,dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno and ename='SMITH';on后的条件形成笛卡尔积,where进一步筛选 这种写法会更清晰

外连接
左外连接
如果联合查询,左侧的表完全显示我们就说是左外连接
语法
sqlselect 字段名 from 表名1 left join 表名2 on 连接条件
四名同学,两名同学有成绩,left join 会优先考虑完整显示左侧的表,inner
查询所有学生成绩,学生没有成绩也要将学生的个人信息显示出来

右外连接
如果联合查询,右侧的表完全显示我们就说是右外连接
语法
sqlselect 字段 from 表名1 right join 表名2 on 连接条件;
显示所有成绩即使没有学生与之对应
将两个表互换位置就是左外连接,显示所有学生的成绩...

列出部门名称和这些部门的员工信息,同时列出没有员工的部门
优先显示部门表,根据 deptno来筛选
select * from DEPT left join EMP on EMP.deptno=DEPT.deptno;
