📜  SQL 面试问题 | 2套(1)

📅  最后修改于: 2023-12-03 15:20:17.772000             🧑  作者: Mango

SQL 面试问题 | 2套

简介

此文档收集整理了两套 SQL 面试问题,以便于程序员进行准备和练习。以下问题均涉及基础 SQL 语法、表连接、聚合函数等知识点。

面试问题
第一套
  1. SQL 中的 Join 类型有哪些?它们的区别是什么?

    • 内连接(INNER JOIN):同时匹配两个表中的记录,筛选出两个表中条件相符的数据。INNER JOIN 返回的结果只包含两个表中都存在的行。

    • 左连接(LEFT JOIN):返回两个表中左侧表中的所有行以及符合条件的右侧表中的行。如果右侧表没有符合条件的行,则填充 NULL 值。

    • 右连接(RIGHT JOIN):返回两个表中右侧表中的所有行以及符合条件的左侧表中的行。如果左侧表没有符合条件的行,则填充 NULL 值。

    • 全连接(FULL OUTER JOIN):左右连接的并集,返回两个表中所有的行,如果某个表中没有符合条件的,也会填充 NULL。

  2. 什么是聚合函数?SQL 中都有哪些聚合函数?

    聚合函数是对同一列或行的数据执行计算并返回单个值的函数。SQL 中常见的聚合函数包括:

    • COUNT:返回一个表中的行数或满足特定条件的行数。

    • SUM:返回指定列的所有值的总和。

    • AVG:返回指定列的所有值的平均值。

    • MAX:返回指定列的所有值中的最大值。

    • MIN:返回指定列的所有值中的最小值。

  3. 什么是事务?数据库事务的特性有哪些?

    事务是一组数据库操作,它们被视为单个逻辑工作单元并具有原子性,一致性,隔离性和持久性。数据库事务的几个特性如下:

    • 原子性(Atomicity):事务是一个不可分割的工作单位,它要么全部执行成功,要么全部失败回滚。

    • 一致性(Consistency):事务前后的状态必须是合法的。

    • 隔离性(Isolation):事务执行的过程中不应该被其他事务所干扰,一个事务的内部操作对于其他事务是不可见的。

    • 持久性(Durability):事务提交后,对数据的修改应该永久保存在数据库中。

第二套
  1. 在 SQL 中,如何查询一张表的所有记录?

    可以使用以下语句查询一张表的所有记录:

    SELECT * FROM table_name;
    
  2. 在 SQL 中,如何查询一列的不同值?

    可以使用以下语句查询一列的不同值:

    SELECT DISTINCT column_name FROM table_name;
    
  3. 如果有一个名为 users 的表,它有两个字段:id 和 name,请编写 SQL 语句获取在表中存在两个或更多用户使用相同名称的所有唯一名称。

    可以使用以下 SQL 语句获取在表中存在两个或更多用户使用相同名称的所有唯一名称:

    SELECT DISTINCT name
    FROM users
    WHERE name IN (
      SELECT name
      FROM users
      GROUP BY name
      HAVING COUNT(*) >= 2
    );
    
结论

以上便是两套 SQL 面试问题,包括了基础语法、表连接以及聚合函数等知识点。程序员可以通过练习以上问题来熟悉 SQL 语言和常见 SQL 操作。