连表询是多表连接来进行查询这个功能多用于多表的信息操作。可以使用等值和不等值连接在SELECT 语句中查询多个表中的数据,也可以使用自连接,还可以使用外连接查询不满足连接条件的数据。
连表也不能乱连,如果连接的条件是无效的,我们所有连接的表都会一起交互连接从而产生笛卡尔集。为了避免这个,我们可以在where加上有效的条件。
oracle中的各种连接(join):内连接、外连接、自然连接、自连接、交叉连接。
内连接(inner join)就是将根据检索条件将满足条件的数据选择出来,oracle首先用第一张表的第一条数据去扫描另一张表的所有数据,如果遇到符合条件的数据就加入到结果集中。直到检索完第二张表的所有数据。然后用第一张表的第二条数据,重复刚才的动作,直到以第一张的最后一条数据。oracle中默认的连接是内连接。
外连接(outer join)是根据需要将表中某些不符合选择条件的数据也列举出来。
自然连接(natural join)是由oracle自行决定哪些列作为连接的条件。Oracle是这么确定的:将不同表中的那些具有相同名称和数据类型的字段用相等的条件连接起来。
自连接(self join)中,Oracle将一个表的一个镜像当作另一个表,你可以像使用两个表一样使用这一个表。
交叉连接(cross join)是两个表的笛卡尔积,即不做任何条件限制,他们的结果集的数据的条数是两个表的数据条数的乘积。