在实际工程中,多个表之间是有关系的。这是不可能的检索表中的所有数据。如果没有表的
连接,然后我们需要很多
操作。例如,你需要从一个表到B表中检索数据
发现的限制
条件,它不仅是需要操作多个表,但也不是效率高。书中的实例,例如:
复制代码代码如下所示:
选择FID
从t_customer
其中名=吧
这个SQL语句返回2,即客户的
名字FID值迈克2,使fcustomerid等于2的记录可以被检索到t_order。
复制代码代码如下所示:
选择数量的快速增加,FPrice
从t_order
在fcustomerid = 2
让我们在餐桌上连接了一看,有许多不同
类型的表连接,如交叉连接,内连接,外连接。
(1)内部连接(内部连接):内部连接将两个表结合起来,只有满足两个表的连接条件的数据才得到。
复制代码代码如下所示:
选择o.fid,o.fnumber,o.fprice,
C.FId,c.fname,C.FAge
从t_order加入t_customer C
在o.fcustomerid = c.fid
注意:在大多数数据库
系统中,内部连接是可选的,内部连接是
默认的连接
模式。
表连接的应用不能仅限于两个表,因为在很多
情况下需要连接多个表。例如,在t_order表还需要连接两t_customer和t_ordertype表来检索所需的信息,并写下如下的SQL语句:
复制代码代码如下所示:
选择o.fid,o.fnumber,o.fprice,
C.FId,c.fname,C.FAge
从t_order加入t_customer C
在o.fcustomerid = c.fid
内部联接t_ordertype
在t_order ftypeid = t_ordertype.fid。
(2)交叉连接(交叉连接):交叉连接所涉及的所有表中的所有记录都包含在结果集中。定义交叉连接的
方法有两种,即隐式和显式连接。
这里有一个隐含的例子:
复制代码代码如下所示:
选择t_customer.fid,t_customer.fname,t_customer.fage,
t_order.fid,t_order.fnumber,t_order.fprice
从t_customer,t_order
使用显式连接,您需要使用交叉连接,例如:
复制代码代码如下所示:
选择t_customer.fid,t_customer.fname,t_customer.fage,
t_order.fid,t_order.fnumber,t_order.fprice
从t_customer
交叉连接t_order
(3)外部连接(外部连接):内部连接获取数据,满足连接条件,与外部的连接,它主要
解决了这样一个场景,这是毫无疑问的数据,满足条件的检索。外部连接的数据,这是另一部分检索、数据填充不满足零的要求。首先看外部连接的
分类:左外连接(左外连接),对外部连接(右外部联接)和全外连接(fullouter加入)。
我,左对外连接(左外联接):前一个还说,不满意的数据填充为NULL。然后具体需要填补null对于左外部连接,如果在右表中没有匹配所需的左表的数据,则必须用NULL值填充相应的右字段,也就是说,左外部连接的主体是左表和右表以匹配。
复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
左外连接t_customer C
在o.fcustomerid = c.fid
注意:如果使用左侧外部连接,则可以使用WHERE语句过滤不兼容的数据。
复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
左外连接t_customer C
在o.fcustomerid = c.fid
在o.fprice > = 150
右,ii(右外接)外部连接:左接地连接正好相反,将空值填满字段左表,也就是说,右边的外部连接是右边的表,左边的表要匹配。
复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
右外部联接t_customer C
在o.fcustomerid = c.fid
注意:与左侧外部连接一样,您可以使用WHERE语句进行筛选。
三,全外连接(fullouter加入):全外连接是左外连接和外部连接的
正确组合。结果集包括
设置左外连接和设置正确的外部连接的结果。
复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
全外连接t_customer C
在o.fcustomerid = c.fid
结果相当于:
复制代码代码如下所示:
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
左外连接t_customer C
在o.fcustomerid = c.fid
联盟
选择o.fnumber,o.fprice,o.fcustomerid,
c.fname,c.fage
从t_order O
右外部联接t_customer C
在o.fcustomerid = c.fid