• 表连接简介


    使用目前所介绍的SQL知识,我们仅能够从一张数据表中检索数据,这在很多情况下是不能满足要求的,因为经常需要从多个表中进行检索才能得到想要的数据,SQL中的“表连接”就是用来解决这个问题的。表连接使用JOIN关键字将一个或者多个表按照彼此间的关系连接为一个结果集。

    表连接在SQL中的地位是非常重要的。假设需要查找姓名为MIKE的客户的订单号和票价。如果SQL不支持表连接,那么完成这个功能的第一个任务将是在T_Customer 表中检索姓名为MIKE的客户的FId值:

    
    SELECT FId FROM T_Customer WHERE FName="MIKE"
    

    这个SQL语句返回2,也就是姓名为MIKE 的客户的FId值为2,这样就可以到T_Order中检索FCustomerId等于2 的记录:

    
    SELECT FNumber,FPrice FROM T_Order WHERE FCustomerId=2
    

    执行完毕我们就能在输出结果中看到下面的执行结果:

    
    FNumber FPrice
    
    N002 100.00
    

    由于这个功能比较简单,而且表中的数据也不复杂,所以使用这种分步处理的方式并没有感到有多么慢,但是如果T_Customer表有不止一个用户叫MIKE甚至有更多表参与检索的话使用这种方式不仅非常烦琐,而且会大大降低检索效率。使用SQL中的表连接则可以简化开发,并且由于数据库系统会对表连接进行查询优化,所以使用表连接进行数据的检索也会非常快速。

    表连接就像连接两张数据表的连线,线的两端是分别在两张表的特定字段上的。在这里的例子中T_Customer表的FId字段和T_Order表的FCustomerId字段就是关联关系的两个端点。在使用表连接的时候必须显式的指定这个关联关系。

    SQL中使用JOIN 关键字来使用表连接。表连接有多种不同的类型,被主流数据库系统支持的有交叉连接(CROSS JOIN)、内连接(INNER JOIN)、外连接(OUTTER JOIN),另外在有的数据库系统中还支持联合连接(UNION JOIN)。

  • 相关阅读:
    Dynamics CRM2016 Web API之更新记录
    opencv基础笔记(1)
    HTML5开发移动web应用——SAP UI5篇(6)
    就算你不是电商,你应该为你的电商朋友好好看看这篇文章
    xode5.1.1设置IOS欢迎界面的方法
    Java中的Nested Classes和Inner Classes
    pve之daemon
    对话沈向洋 | 在人工智能最好的时代,寻求可能性比超前顾虑更关键
    .NET Core 2.0 开源Office组件 NPOI
    【转发活动】Hey, 是你吗? | 寻"粉"启示
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9823705.html
Copyright © 2020-2023  润新知