PostgreSQL应用(四,PostgreSQL连接)

在PostgreSQL中,有以下类型的连接:

  • 内连接(INNER JOIN)
  • 左外连接(LEFT OUTER JOIN/LEFT JOIN)
  • 右外连接(RIGHT OUTER JOIN/RIGHT JOIN)
  • 全连接(FULL OUTER JOIN/FULL JOIN)
  • 跨连接(CROSS JOIN)
    一,内连接(INNER JOIN)
    PostgreSQL内部连接也被称为连接或简单连接。 这是最常见的连接类型。 此连接返回满足连接条件的多个表中的所有行。
    关系图:
    在这里插入图片描述
    语法:
    SELECT table1.columns, table2.columns
    FROM table1
    INNER JOIN table2
    ON table1.common_filed = table2.common_field;

创建教师表:
在这里插入图片描述

学生表:
在这里插入图片描述
示例:
在这里插入图片描述

外连接是内联的延伸,外连接有三种类型。它们分别如下 -左外连接,右外连接,全外连接
二,左外连接(LEFT OUTER JOIN)
左外连接返回从“ON”条件中指定的左侧表中的所有行,只返回满足条件的另一个表中的行,没有匹配上的项全留为空值。
关系图:
在这里插入图片描述

语法:
SELECT table1.columns, table2.columns
FROM table1
LEFT OUTER JOIN table2
ON table1.common_filed = table2.common_field;

示例:
在这里插入图片描述
三,右外连接(RIGHT OUTER JOIN)
右外连接返回从“ON”条件中指定的右侧表中的所有行,只返回满足条件的另一个表中的行。
如下图中所表示:
语法:
SELECT table1.columns, table2.columns
FROM table1
RIGHT OUTER JOIN table2
ON table1.common_filed = table2.common_field;
关系图:
在这里插入图片描述

示例:
在这里插入图片描述
四,全连接(FULL OUTER JOIN)
全外连接从左表和左表中返回所有行。 它将NULL置于不满足连接条件的位置。
语法:
SELECT table1.columns, table2.columns
FROM table1
FULL OUTER JOIN table2
ON table1.common_filed = table2.common_field;
关系图:
在这里插入图片描述
示例:
在这里插入图片描述
五,跨连接(CROSS JOIN)
PostgreSQL跨连接(CROSS JOIN)将第一个表的每一行与第二个表的每一行相匹配。 它也被称为笛卡尔积。 如果table1具有“x”行,而table2具有“y”行,则所得到的表将具有(x * y)行。
语法:
SELECT coloums
FROM table1
CROSS JOIN table2
示例:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40127822/article/details/84530513