数据库-内连接与外连接
史上最详细的实验报告
一、实验目的和要求
1、掌握数据库中的内连接与外连接的概念
2、通过mysql来对内连接与外连接来查询相关数据
3、区别内连接与外连接
二、 实验内容及原理
1、连接查询---内连接的相关知识:
内连接指A与B的交集部分,如下表:
内连接查询语法:
(1)、隐式内连接
Select 字段链表 from 表1,表2 where 条件··· ;
(2)、显式内连接
Select 字段链表 from 表1 [INNER]on 表2 on连接条件··· ;
1、连接查询---外连接的相关知识
外连接查询的语法:
(1)、左外连接
Selet 字段列表 from 表1 left[outer] join 表2 On 条件··· ;
相当于查询表A的所有数据 包含A和B的交集部分
(2)、右外连接
Select 字段列表 from 表1right[outer]join 表2 on 条件··· ;
相当于查询表B的所有数据 包含A和B 的交集部分。
1、创建两个表(dept和tb_user_edu)
创建dept表:
create table dept(
id int auto_increment comment 'ID' primary key,
name varchar(50) not null comment '部门名称'
)comment '部门表';
insert into dept (id,name) values(1,'研发部'),(2,'市场部'),(3,'财务部'),(4,'销售部'),(5,'总经办');
查询表信息如下命令:
select * from dept ;
创建表emp表
create table emp
(
id int null,
name varchar(10) null,
age int null,
job varchar(10) null,
salary int null,
entrydate int null,
managerid int null,
dept_id int null
)
comment '员工表';
查询表信息如下命令:
select * from emp ;
2、实现内连接:
实例
查询每一位员工的姓名以及关联的部门的名称:(隐式内连接实现)
select emp.name ,dept.name from emp,dept where emp.dept_id = dept.id;
查询每一位员工的姓名以及关联的部门的名称:(显式内连接实现)【inner可省略】
select e.name,d.name from emp e inner join dept d on e.de pt_id=d.id;
2、实现外连接
实例:
查询emp表的所有数据,和对应的员工信息(左外连接)
select e.* ,d.* from emp e left join dept d on e.dept_id = d.id;
查询dept表的所有数据,和对应的员工信息(右外连接)
select d.*,e.* from emp e right join dept d on e.dept_id = d.id;
2、区别内连接与外连接
区别
内连接(inner join):取出两张表中匹配到的数据,匹配不到的不保留
外连接(outer join):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL
三、实验总结:
自己想着写呗。