解析:内联,左外联,右连接,全连接,交叉连接

连接分为内部连接、外部连接和交叉连接。
一、最常用的内部连接
定义:只有满足满足连接条件的两个表的行作为结果集组合在一起。
在内部连接中,只有两个表中匹配的行可以出现在结果集中。
关键词:内联接
格式:从表名称1 { { }联接表名称2选择列表名称在条件表达式的位置或位置
解释uff1a
(1)列列表中的列名可以从后面的两个表中派生出来。但是如果两个表中有一个同名的列,则应该在列名之前标记。格式是:表名、列名。
(2)如果连接的两个表的名称太长,它们可以有一个别名。格式是:表名作为别名的名称。
(3)内部是默认的,可以省略。
如:
选择*
我从t_institution
内部联接t_teller T
在i.inst_no = t.inst_no
在i.inst_no =5801
内部可以省略。
相当于早期连接语法
选择*
从t_institution我,t_teller T
在i.inst_no = t.inst_no
和i.inst_no =5801

二、外部连接
1,左(外)连接
定义:在内部连接的基础上,它还包含左表中所有不合格的数据行,并在其右侧表列中填入null。
关键词:左连接
如:
选择*
我从t_institution
左外连接t_teller T
在i.inst_no = t.inst_no
外可以省略。
小心:
当加入条件的补充,效果是相同的无论是添加到加入条款或添加到WHERE子句,但外部连接是不同的。当条件添加到加入条款,SQL服务器和Informix数据库返回所有行的外部连接表,并返回与指定的条件第二表行。如果条件放在WHERE子句中,SQL Server将首先加入的连接操作,然后使用WHERE子句来过滤后的线连接。下面两个查询显示条件放置在执行结果的影响:
连接子句中的条件
选择*
我从t_institution
左外连接t_teller T
在i.inst_no = t.inst_no
和i.inst_no = 5801

结果是:
inst_no inst_name inst_no teller_no teller_name
5801天河区58010001汤姆
5801天河区58010002戴维
5802越秀区
5803白云区

WHERE条款中的条件
选择*
我从t_institution
左外连接t_teller T
在i.inst_no = t.inst_no
在i.inst_no = 5801

结果是:
inst_no inst_name inst_no teller_no teller_name
5801天河区58010001汤姆
5801天河区58010002戴维

2,右(外部)连接
定义:在内部连接的基础上,它还包含不符合右表条件的所有数据行,并在右表的左表列中填入null。
关键词:右连接
三.完整的连接
定义:在内部连接的基础上,它还包含不符合两个表中条件的所有数据行,并在表中的左、右表列中填入null。
关键词:完全联接

三、交叉连接
定义:两个表的所有行组合在一起,连接之后的行数是两个表的乘积的数目。
关键词:交叉连接
格式:从表名1交叉连接表名为2

四,自我连接
自连接是指同一表与其本身之间的连接,这种单一连接通常用于从自反关系(也称为递归关系)中提取数据。
下面的示例是在组织表中查找组织和上级权限的信息。
选择s.inst_no superior_inst,s.inst_name sup_inst_name,i.inst_no,i.inst_name
我从t_institution
加入t_institution S
在i.superior_inst = s.inst_no

结果是:
superior_inst sup_inst_name inst_no inst_name
800天河区、天河区、广州
800越秀区、越秀区、广州
800广州市白云区5803号