zoukankan      html  css  js  c++  java
  • 再看数据库——(6)连接

    简单介绍:

    连接是多表查询的基础。

    因为关系数据库不包括指针或其它关联记录与记录的机制,连接成为了生成跨表数据关系的唯一机制。

    这也就是要用连接的原因。

    分类:

    1、内连接

    使用比較运算符比較被连接列的列值。

    等值——"="

    不等——"="以外运算符

    自然——"=",但它使用选择列表指出查询结果集合中所包含的列。并删除连接表中的反复列。

    演示样例:

    数据库中的两张表分别为dbo.Staff和dbo.Province.

    注:dbo.Staff表中的主键为Code。dbo.Province表中的NameCode即为第一张表的主键。

    dbo.Staff


    dbo.Province


    SELECT * FROM dbo.Staff,dbo.Province_Staff WHERE dbo.Staff.Code=dbo.Province_Staff.NameCode


    使用别名为

    SELECT * FROM dbo.Staff AS s,dbo.Province_Staff AS p WHERE s.Code=p.NameCode

    等价于

    SELECT * FROM dbo.Staff AS s INNER JOIN dbo.Province_Staff AS p ON s.Code=p.NameCode


    显示结果:



    内连接时,假设被连接的表不包括被匹配的记录。有可能丢失信息。


    2、外连接

    查到的结果集合中包括了符合连接条件的行。也包括连接中的全部行

    左外连接(也叫左关联):

    演示样例:

    SELECT * FROM dbo.Staff AS s LEFT JOIN dbo.Province_Staff AS p ON s.Code=p.NameCode


    显示结果:


    对照图中的两个表。左外连接是以左边的表(dbo.Staff)为基准。补充右表的内容,假设没有对应的匹配项,则显示为NULL

    右外连接

    演示样例:

    SELECT * FROM dbo.Staff AS s RIGHT JOIN dbo.Province_Staff AS p ON s.Code=p.NameCode


    显示结果:

    全外连接

    演示样例:

    SELECT * FROM dbo.Staff AS s FULL OUTER JOIN dbo.Province_Staff AS p ON s.Code=p.NameCode


    显示结果:

    运行时中先以Dbo.Staff表进行左外连接。然后以dbo.Province_Staff表进行右外连接。


    3、交叉连接

    演示样例:

    select *from dbo.Staff as s CROSS Join dbo.Province_Staff as pOrder by s.Code


    显示结果:

    先按dbo.staff表的Code排序,要Join的右表无条件拼接过来。这样依次运行,这样这样的记录便为两个表的记录的笛卡尔积。

    总结:

        在使用多表查询时,也能够不用连接查询,那就须要用大量的where...and语句来取代。连接查询有长处,也有缺点。

    长处是SQL语句的可读性好,易于维护和扩展。

    缺点是相比之下,查询效率比較低。当然,也有非常多人提出改善连接查询效率的办法,这就由开发者依据需求做出选择。

  • 相关阅读:
    WCF系列(七) WCF安全系列(二) netTCPBinding绑定之Transport安全模式
    WCF系列(六) WCF安全系列(一) basicHttpBinding
    Convert .Net Program To Mono
    Adware:Win32/FastSaveApp 清除
    Python Http Get Post请求
    Python正则表达式应用示例
    Basic4android 使用Basic开发Android应用
    Decode Android AndroidManifest.xml file via C#
    Python工作记录
    趣文:程序员/开发人员的真实生活
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7105415.html
Copyright © 2011-2022 走看看