• 内连接,外连接,左连接,右连接,全连接,交叉连接


    我们先建立两个表插入一些Demo数据

      ----student=(sno,sname) 学号,姓名
    insert into student(sno,sname) values('2005001','小施');
    insert into student(sno,sname) values('2005002','小王');
    insert into student(sno,sname) values('2005003','小张');
    insert into student(sno,sname) values('2005004','小贾');
    ----stu_score=(sno,scrore) 学号,分数
    insert into stu_score(sno,scrore) values('2005001',90.00);
    insert into stu_score(sno,scrore) values('2005002',95.00);
    insert into stu_score(sno,scrore) values('2005008',80.50);
    insert into stu_score(sno,scrore) values('2005009',88.50);

    (一) 内连接

      内连接,inner join,join 查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的
          列值。

    ----假设a表有M条记录,b表有N条记录,a和b表sno相同的记录有K条
    ----内连接(数据量=K)

    select a.*,b.* from student a join stu_score b on a.sno=b.sno;
    select a.*,b.* from student a inner join stu_score b on a.sno=b.sno;

    外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左
    外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行

    (二) 外连接 (左连接、右连接) 

    左连接或left join,left outer join 返回包括左表中的所有记录和右表中联接字段相等的记录

    右连接或right join ,right outer join 返回包括右表中的所有记录和由表中联接字段相等的记录

    ----左连接/左外连接(数据量=M)
    select a.*,b.* from student a left join stu_score b on a.sno=b.sno;
    select a.*,b.* from student a left outer join stu_score b on a.sno=b.sno;

     

    ----右连接/右外连接(数据量=N)
    select a.*,b.* from student a right join stu_score b on a.sno=b.sno;
    select a.*,b.* from student a right outer join stu_score b on a.sno=b.sno;

    (三) 完全连接()
    定义:在内连接的基础上,还包含两个表中所有不符合条件的数据行,并在其中的左表、和右表列填写NULL
    关键字:FULL JOIN

    ----完全连接(数据量=M+N-K)
    select a.*,b.* from student a full join stu_score b on a.sno=b.sno;

    (四) 交叉连接
    定义:将两个表的所有行进行组合,连接后的行数为两个表的乘积数。(笛卡尔积)
    关键词:CROSS JOIN
    格式:FROM 表名1 CROSS JOIN 表名2 

    ----交叉连接(数据量=M*N)
    select a.*,b.* from student a cross join stu_score b ;

  • 相关阅读:
    我用柔软打败你
    【记录】ASP.NET URL 特殊字符
    再次记录 Visual Studio 2015 CTP 5 的一个坑
    【记录】ASP.NET MVC View 移动版浏览的奇怪问题
    升级 Visual Studio 2015 CTP 5 的坑、坑、坑
    OWIN 中 K Commands 与 OwinHost.exe 相等吗?
    OWIN 中 K Commands(OwinHost.exe)与 Microsoft.AspNet.Hosting 的角色问题
    深入理解 OWIN 中的 Host 和 Server
    【续集】在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题
    delete
  • 原文地址:https://www.cnblogs.com/lin714115/p/1771219.html
Copyright © 2020-2023  润新知