Oracle 的连接查询记录

先 两张表 建表语句如下:

create table A (
        id          number primary key,
        name        varchar2(20),
        class       varchar2(40),
        homeAddress varchar2(200)

);

create table B (
       classid number  primary key,
       student varchar2(90)
    
);

insert into  a values(12,'苹果笔记本','电脑','加州');
insert into  a values (2,'联想笔记本','电脑','北京');
insert into  a values (3,'华为笔记本','电脑','深圳');
insert into  a values (4,'荣耀手机','手机','深圳');
insert into  a values (5,'华为手机','手机','深圳');
insert into  a values (6,'恒大俱乐部','足球俱乐部','广州');
insert into  a values (7,'鲁能足球俱乐部','足球俱乐部','青岛');
insert into  a values (8,'青岛啤酒','饮料','青岛');
insert into  a values (9,'河南烩面','主食','河南');
insert into  a values (10,'少林寺','寺庙','郑州');
insert into  a values (11,'龙门石窟','景区','洛阳');*/

insert into b values (1,'少林寺');
insert into b values (2,'泰山');
insert into b values (3,'龙门石窟');
insert into b values (4,'华山');
insert into b values (5,'衡山');
insert into b values (6,'恒山');
insert into b values (7,'九华山');
insert into b values (8,'黄山');
insert into b values (9,'恒大足球俱乐部');

 --  全连接  一共出线了108 条数据 a 表数据数目 * b表数据数目即出现了笛卡尔积
select * from a,b;

-- 左连接  即以左表为准,并把b表符合 条件的进行显示,不符合的以null 代替
select * from a left join b on a.name=b.student order by a.id;
 
--右连接  即以右表为准,并把a表符合 条件的进行显示,不符合的以null 代替
select * from a right join b on a.name=b.student order by b.classid;


-- 内链接 仅仅显示符合条件的记录a、b表中信息均显示
select * from a inner join b on a.name=b.student order by a.id desc ;

-- 显示所有记录,符合条件不符合条件的均显示,并且没有笛卡尔积
select * from a full join b on a.name=b.student order by a.id desc;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值