本文将提供你在实际面试中可能会遇到的一些常见 SQL 面试问题的列表,以及答案。
为了充分掌握这些知识,请先尝试自己回答每个问题。
1.什么是SQL?
SQL 代表结构化查询语言,是一种编程语言,用于与存储在关系数据库管理系统中的数据进行通信。
它的语法类似于英语,易于编写、阅读和解释。它允许您编写定义您正在寻找的数据子集的查询。您可以保存这些查询、优化它们、共享它们并在不同的数据库上运行它们。
2. 什么是数据库?
数据库是存储在计算机中的一组数据,其中数据的结构使其易于访问。
3. 什么是关系数据库?
关系数据库是一种数据库。它使用的结构允许我们识别和访问与数据库中其他数据相关的数据。
关系数据库中的数据通常以表格的形式组织。
4. 什么是关系型数据库?
关系数据库管理系统 (RDBMS) 是一个允许您创建、更新和管理关系数据库的程序。
大多数关系数据库管理系统使用 SQL 语言来访问数据库。
最流行的 RDBMS 是 MySQL。其他包括 PostgreSQL、Oracle DB、SQL Server 和 SQLite。
5.什么是表?
表是组织成行和列的数据集合。它们有时被称为“关系”。
它们可以拥有数百、数千、有时甚至数百万行数据。
6. 什么是表中的行和列?
一列是表中的数据的一个记录。
甲列是一组特定类型的数据值的。
7. 什么是数据类型?
数据类型是一个属性,用于指定列所包含的数据类型。
数据库的每一列都有一个数据类型。
一些常见的数据类型是INTEGER、TEXT、DATE、REAL。
8. 什么是主键和外键?
甲主键是唯一标识一个表的每行中的列。
主键必须满足以下要求:没有值可以NULL,每个值必须是唯一的,一个表不能有多个主键列。
例如,在一个customers表中,主键是customer_id。
一个外键是出现在不同的表中的一个表的主键。例如,如果还有一个orders表,每个订单都可以存储客户,这样customer_id列就是外键。
9. ALTER 和 UPDATE 有什么区别?
该ALTER语句用于向表中添加新列。它改变了表结构。
该UPDATE语句用于编辑表中的一行。它更改表中的现有记录。
10. 什么是查询?
查询是用于检索存储在数据库中的信息的 SQL 语句。
它们允许我们通过提出问题并返回包含与问题相关的数据的结果集来与数据库进行通信。
11. 什么是子查询?
子查询是嵌套在外部查询内部的内部查询。
他们可以嵌套的内部SELECT,INSERT,UPDATE,或DELETE语句。
当存在子查询时,它将在运行外部语句之前执行。
12. 什么是约束?
约束是一组规则,用于告诉数据库限制可以为列存储的数据类型。它们告诉数据库拒绝不符合限制的插入数据。
它们添加有关如何使用列的信息,并在列的数据类型之后调用。
一些约束的例子是:
PRIMARY KEY,它唯一标识每一行并要求每个值都是唯一的。 UNIQUE,这要求列中的每个值都不同。 NOT NULL,这要求列具有值。 DEFAULT,如果新行未指定该列的值,则该参数将作为插入行的假定值。
13. 什么是声明?
语句是数据库识别为有效命令的文本。
它们可用于执行诸如更改表结构、更新数据或从数据库检索数据等任务。
语句的结构可以变化,但每个结构都必须以分号 结尾;。一条语句使用的行数无关紧要,可以写成一行,也可以拆分成多行,以便于阅读。
14.如何检查一个字段是否有值或有值?
当一个字段没有值时,它用一个NULL值表示。
要检查字段是否没有值,您可以使用IS NULL以下条件:WHERE col IS NULL。
要检查字段是否具有值,您可以使用IS NOT NULL以下条件:WHERE col IS NOT NULL。
15. DISTINCT 和 UNIQUE 有什么区别?
DISTINCT是我们想要在输出中返回唯一值时使用的关键字。它过滤掉指定列中的所有重复值。
UNIQUE是用于确保列的所有值都不同的约束。它类似于PRIMARY KEY,不同之处在于一个表可以有许多不同的UNIQUE列。
16. 聚合函数有什么用?
聚合函数用于对一个或多个值执行计算,并返回包含更有意义信息的单个值。
一些聚合函数COUNT(),SUM(),MAX(),MIN(),AVG(),和ROUND()。
17.什么是连接?
联接是一种根据两个或多个表之间的相关列组合来自两个或多个表的行的方法。
18. INNER JOIN 和 LEFT JOIN 有什么区别?
AnINNER JOIN用于包含两个表中符合ON条件的组合行。最终结果不包括与ON条件不匹配的行。
ALEFT JOIN用于保留第一个表中的所有行,无论第二个表中是否存在与ON条件匹配的行。
19、windows函数的目的是什么?
当您希望在显示分组或汇总信息的同时维护原始表的值时,可以使用 Windows 函数。它类似于聚合函数,但不会通过将它们组合或分组为几个结果来减少结果中的行数。
20. 什么是索引,为什么需要它们?
索引是在数据库后台使用的强大工具,通过充当数据的查找表来加快查询速度。
它们需要有效地存储数据以加快检索速度,这对于每天需要处理 PB 级数据的大型科技公司的成功至关重要。