暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL常见的基础面试题(十二)

SQL数据库运维 2023-02-23
253

点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!

35、 SQL 中有哪些常用的 SQL 连接?

  1. 参考答案如下:

SQL 连接用于将多个表中的数据检索到有意义的结果集中。每当需要从两个或多个表中获取记录时都会执行此操作。它们与 SELECT 语句和连接条件一起使用。

以下是 SQL 中最常用的连接:

  • 内部联接(INNER JOIN)

  • 左外连接(LEFT OUTER JOIN)

  • 右外连接(RIGHT OUTER JOIN)


36、SQL 中有哪些不同类型的连接?

  1. 参考答案如下:

连接用于合并两个表或从表中检索数据。这取决于表之间的关系。根据 ANSI 标准,以下是 SQL 中使用的不同类型的连接:

  • INNER JOIN

  • SELF JOIN

  • LEFT OUTER JOIN

  • RIGHT OUTER JOIN

  • FULL OUTER JOIN

  • CROSS JOIN

37、SQL 中的 INNER JOIN 是什么?

  1. 参考答案如下:

内连接只返回表中符合指定条件的记录,并隐藏其他行和列。简而言之,当找到表之间的至少一个匹配行时,它会获取行。 INNER JOIN
 关键字连接来自两个表的匹配记录。它被假定为默认连接,因此在查询中使用 INNER
 关键字是可选的。

下面的视觉表示更清楚地解释了这个连接:

以下语法说明了 INNER JOIN

    SELECT column_lists  
    FROM table1
    INNER JOIN table2 ON join_condition1
    INNER JOIN table3 ON join_condition2
    ...;

    38、SQL 中的Right JOIN是什么?

    1. 参考答案如下:

    Right JOIN用于从右侧表中检索所有行,并且仅从另一个表中检索满足连接条件的那些行。即使左侧表中没有匹配项,它也会返回右侧表中的所有行。如果它从左侧表中找到不匹配的记录,则返回 Null 值。此联接也称为右外部联接。

    下面的视觉表示更清楚地解释了这个连接:

    以下语法说明了 RIGHT JOIN

      SELECT colum_lists    
      FROM table1
      RIGHT JOIN table2
      ON join_condition;

      39、SQL中的Left Join是什么?

      1. 参考答案如下:

      Left Join 用于获取左侧表中的所有行以及指定表之间的公共记录。即使右侧表中没有匹配项,它也会返回左侧表中的所有行。如果它不会从右侧表中找到任何匹配的记录,则返回 null。此连接也可以称为左外连接。

      以下视觉表示更清楚地解释了它:

      以下语法说明了 Left JOIN:

        SELECT colum_lists    
        FROM table1
        LEFT JOIN table2
        ON join_condition;

        40、SQL 中的完全联接是什么?

        1. 参考答案如下:

        完全连接是左右连接组合的结果,包含两个表中的所有记录。当任何一个表中存在匹配的行时,它会获取行。这意味着它返回左侧表中的所有行和右侧表中的所有行。如果未找到匹配项,则设置 NULL 值。它也被称为完全外连接。

        以下图表更清楚地解释了它:

        以下语法说明了 FULL JOIN:

          SELECT * FROM table1     
          FULL OUTER JOIN table2
          ON join_condition;

          41、什么是自连接(SELF JOIN)?自连接的要求是什么?

          1. 参考答案如下:

          SELF JOIN 用于将表与其自身连接。这种连接可以使用表别名来执行,这样我们就可以避免在一个句子中重复相同的表名。如果我们在单个查询中多次使用相同的表名而不使用表别名,它将引发错误。

          当我们想要将数据与同一表本身中的其他数据组合时,需要使用 SELF JOIN。将层次结构转换为平面结构通常非常有用。

          以下是 SELF JOIN 的语法:

            SELECT column_lists    
            FROM table1 AS T1, table1 AS T2
            WHERE join_conditions;

            例子

            假设有一个表 ‘Student’ 包含以下数据:

            如果想从student_id
            相等且course_id
            不相等的表中获取student_id和name,可以使用自连接来完成:

              SELECT  s1.student_id, s1.name    
              FROM student AS s1, student s2
              WHERE s1.student_id=s2.student_id
              AND s1.course_id<>s2.course_id;

              建议点赞收藏备用,也许哪天换工作就用到了!好的东西需要被发现和知晓!

              参考资料:https://www.yiibai.com/interview/300

              点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。


              动动小手点击加关注呦☟☟☟

              文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论