美文网首页程序员
PostgreSQL 数据库连接

PostgreSQL 数据库连接

作者: 斐波那契额 | 来源:发表于2018-03-20 14:47 被阅读24次
    postgres-banners.jpg

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

    • 内连接(INNER JOIN)
    • 左外连接(LEFT OUTER JOIN)
    • 右外连接(RIGHT OUTER JOIN)
    • 全连接(FULL OUTER JOIN)
    • 跨连接(CROSS JOIN)
    1. INNER JOIN(内连接)

    PostgreSQL 内部连接也被称为 <strong style="color: red;">连接</strong> 或 <strong style="color: red;">简单连接</strong>。 这是最常见的连接类型。 此连接返回满足连接条件的多个表中的所有行。

    语法:

    SELECT table1.columns, table2.columns  
    FROM table1  
    INNER JOIN table2  
    ON table1.common_filed = table2.common_field;
    

    例子:

    SELECT EMPLOYEES.ID, EMPLOYEES.NAME, DEPARTMENT.DEPT  
    FROM EMPLOYEES   
    INNER JOIN DEPARTMENT  
    ON EMPLOYEES.ID = DEPARTMENT.ID;
    

    外连接是内联的延伸,外连接有三种类型。它们分别如下:

    • 左外连接
    • 右外连接
    • 全外连接
    2. 左外连接

    左外连接返回从 <strong style="color: red;">ON</strong> 条件中指定的左侧表中的所有行,只返回满足条件的另一个表中的行。

    语法:

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

    例子:

    SELECT EMPLOYEES.ID, EMPLOYEES.NAME, DEPARTMENT.DEPT  
    FROM EMPLOYEES 
    LEFT OUTER JOIN DEPARTMENT  
    ON EMPLOYEES.ID = DEPARTMENT.ID;
    
    3. 右外连接

    右外连接返回从 <strong style="color: red;">ON</strong> 条件中指定的右侧表中的所有行,只返回满足条件的另一个表中的行。

    语法:

    SELECT table1.columns, table2.columns  
    FROM table1  
    RIGHT OUTER JOIN table2  
    ON table1.common_filed = table2.common_field;
    

    例子:

    SELECT EMPLOYEES.ID, EMPLOYEES.NAME, DEPARTMENT.DEPT  
    FROM EMPLOYEES 
    RIGHT OUTER JOIN DEPARTMENT  
    ON EMPLOYEES.ID = DEPARTMENT.ID;
    
    4. 全外连接

    <strong style="color: red;">FULL</strong>外连接从<strong style="color: red;">LEFT</strong>表和<strong style="color: red;">RIGHT</strong>表中返回所有行。 它将<strong style="color: red;">NULL</strong>置于不满足连接条件的位置。

    语法:

    SELECT table1.columns, table2.columns  
    FROM table1  
    FULL OUTER JOIN table2  
    ON table1.common_filed = table2.common_field;
    

    例子:

    SELECT EMPLOYEES.ID, EMPLOYEES.NAME, DEPARTMENT.DEPT  
    FROM EMPLOYEES 
    FULL OUTER JOIN DEPARTMENT  
    ON EMPLOYEES.ID = DEPARTMENT.ID;
    
    5. 跨连接(CROSS JOIN)

    PostgreSQL <strong style="color: red;">跨连接(CROSS JOIN)</strong>将第一个表的每一行与第二个表的每一行相匹配。 它也被称为<strong style="color: red;">笛卡儿积分</strong>。 如果table1具有“x”列,而table2具有“y”列,则所得到的表将具有(x + y)列。

    语法:

    SELECT coloums   
    FROM table1   
    CROSS JOIN table2
    

    例子:

    SELECT NAME, DEPT 
    FROM EMPLOYEES  
    CROSS JOIN DEPARTMENT;
    

    相关文章

      网友评论

        本文标题:PostgreSQL 数据库连接

        本文链接:https://www.haomeiwen.com/subject/lgcbqftx.html