• 外连接说明


    外连接

    外连接分为三种:左外连接、右外连接、完全外连

    1、 左外连接 (left join - on)(如果左侧的表完全显示我们就说是左外连接)

    基本语法:

    select 列名1,列名2,.. from 表1 left join 表2 on 条件;

    或者

    select列名1,列名2,.. from 表1,表2 where 条件1=条件2(+);

    2、 右外连接 (right join - on)(如果右侧的表完全显示我们就说是右外连接)

    基本语法:

    select 列名1,列名2,.. from 表1 right join 表2 on 条件;

    或者

    select列名1,列名2,.. from 表1,表2 where 条件1(+)=条件2;

    3、完全外连 (full outer join - on)(完全显示两个表,没有匹配的记录置为空)

    基本语法:

    select 列名1,列2,.. from 表1 full outer join 表2 on 条件;

    创建两张表做测试使用stu/exam表

    create table stu (id number,name varchar2(32));

    insert into stu values(1,'jack');

    insert into stu values(2,'tom');

    insert into stu values(3,'kity');

    insert into stu values(4,'nono');

    create table exam (id number,grade number);

    insert into exam values(1,56);

    insert into exam values(2,76);

    insert into exam values(11,8);

    外连接

    1、内连接案例(显示两表ID匹配的)

    基本语法:select 字段1,字段2... 表名1 inner join 表名2 on 条件;

    2、左连接(显示所有人的成绩,如果没有成绩,也要显示该人的姓名和id号,成绩显示为空)

    SQL>select s.id,s.name,e.grade from stu s left join exam e on s.id=e.id;

    SQL>select s.id,s.name,e.grade from stu s,exam e where s.id=e.id(+);

    3、右外连接(显示所有成绩,如果没有名字匹配,显示空)

    SQL>select s.id,s.name,e.grade from stu s right join exam e on s.id=e.id;

    SQL>select s.id,s.name,e.grade from stu s,exam e where s.id(+)=e.id;

    小结:实际上左外连接和右外连接是可以互为转换的。

    4、完全外连接(显示所有成绩和所有人的名字,如果没有相应的匹配值,则显示空)

    SQL>select s.id,s.name,e.grade from stu s full outer join exam e on s.id=e.id;

  • 相关阅读:
    直接插入排序
    安卓突击:隐式、显式Intent
    安卓突击:Android 动画有哪几种?
    安卓突击:ANR
    安卓突击:系统上安装了多种浏览器,能否指定某浏览器访问指定页面
    安卓突击:系统上安装了多种浏览器,能否指定某浏览器访问指定页面
    Android:BroadcastReceiver的基础知识
    安卓突击:service的基础知识
    安卓突击:数据存储方式
    Android突击:常用的五种布局
  • 原文地址:https://www.cnblogs.com/roger112/p/7715612.html
Copyright © 2020-2023  润新知