3、sql 表的连接

摘要:
2.将表A的所有行与表B的所有行连接起来。可以修改为5。NaturalJOIN自然连接用于将两个表中具有相同名称和数据类型的字段等效连接起来,并返回合格结果。两个表中相同字段的数量不能超过11。例如:selectselect_Listfromtable1naturaljointab2 6。汇总表连接分为:1。CROSSJOIN:显示贴花产品。

摘自: https://blog.csdn.net/holly2008/article/details/25704471

表连接分为:CROSS JOIN、INNERT JOIN、OUTER JOIN、SELF JOIN。

一、CROSS JOIN 交叉连接

  CROSS JOIN连接用于生成两张表的笛卡尔集。
  1、返回的记录数为两个表的记录数乘积。比如,A表有n条记录,B表有m条记录,则返回n*m条记录。
  2、将A表的所有行分别与B表的所有行进行连接。
3、sql 表的连接第1张

二、INNER JOIN 内连接

  内连接就是关联的两张或多张表中,根据关联条件,显示所有匹配的记录,匹配不上的,不显示。

  1、--也可以省略inner关键字,直接写join

  2、--如果两张表的关联字段名相同,也可以使用USING子句。

3、sql 表的连接第2张

  

三、OUTER JOIN 外连接
  外连接,又分为:(-如果两张表的关联字段名相同,也可以使用USING子句)
        1.LEFT OUTER JOIN/LEFT JOIN(左外连接)
        2.RIGHT OUTER JOIN/RIGHT JOIN(右外连接)
        3.FULL OUTER JOIN/FULL JOIN(全外连接)

 1.LEFT OUTER JOIN/LEFT JOIN(左外连接)

        左外连接就是关联的两张或多张表中,根据关联条件,显示匹配的记录,左表中有的记录,但是右表中没有匹配上的,以空(null)显示。
        LEFT OUTER JOIN也可以简写成LEFT JOIN,效果是一样的。

2.RIGHT OUTER JOIN/RIGHT JOIN(右外连接)
        右外连接就是关联的两张或多张表中,根据关联条件,显示匹配的记录。右表中有的记录,但是左表中没有匹配上的,以空(null)显示。
        RIGHT OUTER JOIN也可以简写成RIGHT JOIN,效果是一样的。
 

3.FULL OUTER JOIN/FULL JOIN(全外连接)
        全外连接就是关联的两张或多张表中,根据关联条件,显示所有匹配和不匹配的记录。(m + n)
        左表中有的记录,但是右表中没有匹配上的,以空(null)显示。右表中有的记录,但是左表中没有匹配上的,也以空(null)显示。
        FULL OUTER JOIN也可以简写成FULL JOIN,效果是一样的。
 

四、SELF JOIN 自连接 

   自连接,就是把一张表取两个别名,当做两张表来使用,自己和自己关联。(一般不用)

  3、sql 表的连接第3张

  可以修改为

  3、sql 表的连接第4张

五、Natural JOIN 自然连接

  对两张表中名称、数据类型都相同的字段进行等值连接,并返回符合条件的结果

  两张表的相同的字段不能超过 11 个。

  eg:  select select_list from table1 natural join tabl2

六、总结
表连接分为:
  1.CROSS JOIN:显示迪卡尔积。
  2.INNERT JOIN:显示所有匹配的项。
  3.OUTER JOIN
     外连接又分为:
       1) LEFT OUTER JOIN/LEFT JOIN:显示左表的所有项,右表没有匹配的项,则以null显示。
       2) RIGHT OUTER JOIN/RIGHT JOIN:显示右表的所有项,左表没有匹配的项,则以null显示。
       3) FULL OUTER JOIN/FULL JOIN:显示所有匹配和不匹配的项,左右两张表没有匹配的,都以null显示。
  4.SELF JOIN:把一张表取两个别名,当做两张表来使用,自己和自己关联。

        5、NATURAL JOIN: 把两张表根据同名称、同数据类型的字段进行连接起来,返回匹配的项。
3、sql 表的连接第5张

免责声明:文章转载自《3、sql 表的连接》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vcredist_x86.exe 静默安装方法setTimeout与setInterval实战之定时刷新下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL的多表查询(笛卡尔积原理)

先确定数据要用到哪些表。 将多个表先通过笛卡尔积变成一个表。 然后去除不符合逻辑的数据(根据两个表的关系去掉)。 最后当做是一个虚拟表一样来加上条件即可。 注意:列名最好使用表别名来区别。 笛卡尔积 Demo: 左,右连接,内,外连接 l 内连接: 要点:返回的是所有匹配的记录。 2. select * from a,b where a.x =...

Oracle数据库4--多表关联

1. 92语法多表关联 1.1笛卡尔积 --笛卡尔积 select * from emp,dept 1.2等值连接 --等值连接--需求:查询雇员的部门名称 selecte.ename,e.deptno,d.dname fromemp e,dept d where e.deptno = d.deptno 1.3不等值连接 --不等值连接--查询每个雇员的...

数据库表与表连接的方式(内连接、外连接[左连接、右连接、全连接]、交叉连接)

第一部分、查询理论 连接查询的方式有: 内连接、外连接(左连接、右连接、全连接)、交叉连接 左连接和右连接的区别: 左连接以左表为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为NULL;右连接刚好相反。 全连接就是先以左表进行左外连接,然后以右表进行右外连接。 说明:所谓的基准,就是以某张表的限制条...

MYSQL学习笔记——连接以及存储过程

连接                                                                                                     当我们需要从多个表查询数据时,我们就需要使用到连接操作,mysql支持内连接,左连接以及右连接三种连接方式。 数据库准备       首先我们创建两个表...

ORACLE复杂查询之连接查询

一、传统的连接查询 1、交叉连接:返回笛卡尔积     WHERE中限定查询条件,可以预先过滤掉掉不符合条件的记录,返回的只是两个表中剩余记录(符合条件的记录)的笛卡尔积。 2、内连接:参与连接的表地位平等,不分主次。两表均可能有丢弃。 (1)等值连接:表间记录的连接是通过相等的字段值为条件建立起来的。 (2)非等值连接:与等值连接类似。如果表间记...

Oracle【多表查询操作(SQL92&SQL99)】

多表联合查询:需要获取的数据分布在多张表中 SQL92: 1 --笛卡尔积:将多个表的数据进行一一对应,所得的结果为多表的笛卡尔积 2 select * from emp; 3 select * from dept; 4 select * from emp,dept;--进行全排列 14*5=70 1 --等值连接:先笛卡尔积,然后筛选,筛选条件为等值...