表的内连和外连
一、内连接
内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。前面几篇博客中使用的全是内连接。
语法:
select 字段 from 表一 inner join 表二 on 连接条件 and 其他条件;
举例:显示SMITH的名字和部门名称
用前面的写法
select ename,dname from emp,dept where emp.deptno=dept.deptno and ename='SMITH';
用标准的内连接写法:
select ename,dname from emp inner join dept on emp.deptno=dept.deptno and ename='SMITH';
二、外连接
外连接一般分为左外连接和右外链接
1、左外连接:如果联合查询,左侧的表完全显示我们就说是左外连接。
语法:
select 字段名 from 表一 left join 表二 on 连接条件;
举例:
准备工作:先建两张表
create table student (id int,name varchar(32)); --学生表
insert into student values(1,'Jack'),(2,'Lucy'),(6,'Lily');
create table exam(id int,grade int); --成绩表
insert into exam values(1,100),(2,89),(3,66),(4,90);
查询所有学生的成绩,左外连结果就是:即使学生没有成绩,也要将学生个人信息显示出来
2、右外链接:如果联合查询,右侧的表完全显示我们就说是右外连接。
语法:
select 字段名 from 表一 right join 表二 on 连接条件;
举例:如上,查询学生所有成绩
右外连结果:即使存在成绩并没有学生与之对应,也会将成绩显示出来