Myslq表的内外连接
同样使用来自于csdn:
Mysql下-scott用户表的创建_风泊月mysql 员工表-CSDN博客
的数据库作为使用案例
1.内连接
内连接实际上就是利用where字句对两种表形成的笛卡尔积进行筛选。
select 字段 from 表1 inner join 表2 on 连接条件 and 其它条件;
案例:显示ALLEN员工的名字和部门名称
不按照内连接进行筛选:
select ename,dname from emp,dept where
emp.deptno=dept.deptno and ename=’ALLEN’;
按内连接进行筛选:
select ename,dname from emp inner join dept on emp.deptno=dept.deptno and emp.ename=’ALLEN’;
2.外连接
外连接分为左外连接和右外连接
2.1左外连接
select 字段 from 表1 left join 表2 on 连接条件 and 其它条件;
让左侧表完全显示
案例:
建立一张学生表:
create table if not exists stu(id int,name varchar(30));
向其中插入元素:
创建成绩表向其中插入元素:
案例1:查询所有学生成绩,就算这个学生没有成绩也要将学生信息显示出来
就是将左侧的stu表完全保留,而不是实行一一对应。
stu表中3,4号学生没有在exam表中与之配对的成绩但仍然在左侧表中保留。
2.2右外连接
select 字段 from 表名1 right join 表名2 on连接条件
保留右侧表的全部信息
案例2:查询所有的成绩,就算没有与之对应的学生也要显示
案例3:---使用scott数据库
列出部门名称和这些部门的员工信息,同时列出没用员工的部门
以dept表为主,与emp表进行左连接
就能显示为空的部门