📅  最后修改于: 2023-12-03 15:20:17.772000             🧑  作者: Mango
此文档收集整理了两套 SQL 面试问题,以便于程序员进行准备和练习。以下问题均涉及基础 SQL 语法、表连接、聚合函数等知识点。
SQL 中的 Join 类型有哪些?它们的区别是什么?
内连接(INNER JOIN):同时匹配两个表中的记录,筛选出两个表中条件相符的数据。INNER JOIN 返回的结果只包含两个表中都存在的行。
左连接(LEFT JOIN):返回两个表中左侧表中的所有行以及符合条件的右侧表中的行。如果右侧表没有符合条件的行,则填充 NULL 值。
右连接(RIGHT JOIN):返回两个表中右侧表中的所有行以及符合条件的左侧表中的行。如果左侧表没有符合条件的行,则填充 NULL 值。
全连接(FULL OUTER JOIN):左右连接的并集,返回两个表中所有的行,如果某个表中没有符合条件的,也会填充 NULL。
什么是聚合函数?SQL 中都有哪些聚合函数?
聚合函数是对同一列或行的数据执行计算并返回单个值的函数。SQL 中常见的聚合函数包括:
COUNT:返回一个表中的行数或满足特定条件的行数。
SUM:返回指定列的所有值的总和。
AVG:返回指定列的所有值的平均值。
MAX:返回指定列的所有值中的最大值。
MIN:返回指定列的所有值中的最小值。
什么是事务?数据库事务的特性有哪些?
事务是一组数据库操作,它们被视为单个逻辑工作单元并具有原子性,一致性,隔离性和持久性。数据库事务的几个特性如下:
原子性(Atomicity):事务是一个不可分割的工作单位,它要么全部执行成功,要么全部失败回滚。
一致性(Consistency):事务前后的状态必须是合法的。
隔离性(Isolation):事务执行的过程中不应该被其他事务所干扰,一个事务的内部操作对于其他事务是不可见的。
持久性(Durability):事务提交后,对数据的修改应该永久保存在数据库中。
在 SQL 中,如何查询一张表的所有记录?
可以使用以下语句查询一张表的所有记录:
SELECT * FROM table_name;
在 SQL 中,如何查询一列的不同值?
可以使用以下语句查询一列的不同值:
SELECT DISTINCT column_name FROM table_name;
如果有一个名为 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 操作。