外链论坛

 找回密码
 立即注册
搜索
查看: 48|回复: 0

数据库内连接以及上下连接的区别

[复制链接]

2622

主题

4932

回帖

9916万

积分

论坛元老

Rank: 8Rank: 8

积分
99160639
发表于 2024-8-4 11:02:39 | 显示全部楼层 |阅读模式

在数据库中,查找数据时,有时候触及到多表查找,多表查找有内连接,左连接和右连接等几种状况。这次咱们介绍内连接,左连接以及右连接的区别。

首要咱们来看一下内连接,左连接以及右连接的定义。

内连接

进行多表查找时,根据匹配要求,在结果集中只保存各个表中满足匹配要求的记录。

左连接

在连接查找过程中,以左表为主表,在结果集中保存左表中的所有记录及右表中满足匹配要求的记录。

右连接

在连接查找过程中,以右表为主表,在结果集中保存右表中的所有记录及左表中满足匹配要求的记录。

此刻咱们经过例子来讲明内连接,左连接以及右连接的区别。

#新建一个数据库,名字叫lianxi

create database lianxi default CHARACTER set utf8;

#选取运用的数据库lianxi

use lianxi;

#新建一张兴趣表(个人编号,个人姓名,个人兴趣)

create table habit

(

id int,

name varchar(20),

ah varchar(20)

);

#新建一张宠物表(个人编号,个人姓名,养的宠物)

create table pet

(

id int,

name varchar(20),

cw varchar(20)

)

#给兴趣插进三条数据

insert into habit values(1,"zhang1",”fishing”);

insert into habit values(2,"zhang2",”swimming”);

insert into habit values(3"zhang2",”running”);

#给宠物表插进三条数据

insert into pet values(1,"zhang1",”pig”);

insert into pet values(2,"zhang2",”dog”);

insert into pet values(3,"li3",”duck”);

内连接:在结果集中只保存各个表中满足匹配要求的记录

SELECT a.name,a.cw,b.ah from pet a join habit b on a.name=b.name;

在pet表和habit表中name字段能够相关起来的仅有zhang1和zhang2

因此查找结果中只展示zhang1和zhang2的name,cw和ah的数据。

左连接:在结果集中保存左表中的所有记录及右表中满足匹配要求的记录。

SELECT a.name,a.cw,b.ah from pet a left join habit b on a.name=b.name;

     pet表是左表,habit是右表,展示pet表中的所有name和cw两个字段的值,右表habit只展示zhang1和zhang2的ah的值

右连接:在结果集中保存右表中的所有记录及左表中满足匹配要求的记录。

SELECT a.name,a.cw,b.ah from pet a right join habit b on a.name=b.name;

      pet表是左表,habit是右表,展示右表habit中ah字段的所有值,左表pet只展示zhang1和zhang2的name和cw字段的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-3 22:14 , Processed in 0.062461 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.