2022-12-14

               数据库-内连接与外连接

史上最详细的实验报告

一、实验目的和要求

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

三、实验总结:

自己想着写呗。

你可能感兴趣的:(2022-12-14)