RDBMS 是迄今为止最常用的数据库之一,因此SQL 技能在大多数工作角色中必不可少。在这篇 SQL 面试问题文章中,我将向您介绍有关 SQL(结构化查询语言)的最常见问题。本文是您学习与 SQL、Oracle、MS SQL Server 和 MySQL 数据库相关的所有概念的完美指南。我们的 65 大 SQL 面试问题文章是 一站式资源
,您可以从中提高面试准备。
让我们开始吧!
Q1:SQL 和 MySQL 有什么区别?
SQL是一种标准语言,代表了基于英语的结构化查询语言 ; SQL是关系型数据库的核心,用于访问和管理数据库
MySQL是一个数据库管理系统。MySQL 是一个 RDMS(关系数据库管理系统),如 SQL Server、Informix 等。
Q2:SQL 有哪些不同的子集?
Q3:你说的 DBMS 是什么意思?它有哪些不同的类型?
一个 数据库管理系统 ( DBMS )是一个软件应用程序与用户,应用程序和数据库本身交互,以捕获和分析数据。数据库是结构化的数据集合。
DBMS 允许用户与数据库交互。 存储在数据库中的数据可以修改、检索和删除,并且可以是任何类型,如字符串、数字、图像等。
有两种类型的 DBMS:
Q4:什么是关系型数据库?它与 DBMS 有何不同?
关系数据库管理系统 (RDBMS) 是一组应用程序和功能,允许 IT 专业人员和其他人开发、编辑、管理关系数据库并与它们交互。大多数商业关系数据库管理系统使用结构化查询语言 (SQL) 来访问以表格形式存储的数据库。RDBMS 是全球企业中使用最广泛的数据库系统。它提供了一种稳定的方式来存储和检索大量数据。
通常,数据库保存可以在其他应用程序中访问和使用的数据集合。数据库平台的开发、管理和使用都由数据库管理系统支持。
关系数据库管理系统 (RDBMS) 是一种数据库管理系统 (DBMS),它将数据存储在链接相关数据组件的基于行的表结构中。RDBMS 包含确保数据安全性、准确性、完整性和一致性的功能。这与数据库管理系统使用的文件存储不同。
以下是数据库管理系统和关系数据库管理系统之间的一些进一步区别:
允许使用系统的用户数 一个 DBMS 一次只能处理一个用户,而一个 RDBMS 可以处理多个用户。 硬件和软件规范 与 RDBMS 相比,DBMS 需要的软件和硬件更少。 信息量 RDBMS 可以处理任意数量的数据,从微小到巨大,而 DBMS 仅限于少量。 数据库 Data 的结构 以分层格式存储在 DBMS 中,而 RDBMS 使用表头作为列名和行保存相关值。 ACID 原则的实现 DBMS 不使用原子性、一致性、隔离性和持久性 (ACID) 概念进行数据存储。另一方面,RDBMS 使用 ACID 模型来组织其数据并确保一致性。 分布式 数据库 DBMS 不会为分布式数据库提供完整的支持,而 RDBMS 会。 受管理 DBMS 程序专注于保存存在于计算机网络和系统硬盘中的数据库,而 RDBMS 帮助管理其合并的数据表之间的关系。 支持 数据库规范化 RDBMS 可以规范化,但 DBMS 不能规范化。
Q5. 什么是自联接?
自联接是一种可用于连接两个表的联接。因此,它是一元关系。表的每一行都附加到自身以及自联接中同一表的所有其他行。因此,自联接主要用于组合和比较同一数据库表中的行。
Q6. 什么是 SELECT 语句?
SELECT 命令从一个或多个数据库表或视图中获取零个或多个行。在大多数应用程序中,最常用的数据操作语言 (DML) 命令是 SELECT。SELECT 查询定义了一个结果集,而不是如何计算它,因为 SQL 是一种声明式编程语言。
Q7. 在 SQL 中与 SELECT 查询一起使用的一些常用子句有哪些?
以下是一些与 SELECT 查询结合使用的常见 SQL 子句:
WHERE 子句:在 SQL 中,WHERE 子句用于根据特定条件过滤所需的记录。 ORDER BY 子句:SQL 中的 ORDER BY 子句用于根据指定的字段 (DESC) 按升序 (ASC) 或降序 (DESC) 对数据进行排序。 GROUP BY 子句:SQL 中的 GROUP BY 子句用于对具有相同数据的条目进行分组,并且可以与聚合方法一起使用以获得汇总的数据库结果。SQL 中的 HAVING 子句结合 GROUP BY 子句用于过滤记录。它与 WHERE 不同,因为 WHERE 子句不能过滤聚合记录。
Q8. 什么是 UNION、MINUS 和 INTERSECT 命令?
UNION 运算符用于合并两个表的结果,同时删除重复条目。MINUS 运算符用于从第一个查询而不是从第二个查询返回行。INTERSECT 运算符用于将两个查询的结果合并为一行。在运行上述任一 SQL 语句之前,必须满足某些要求——在子句中,每个 SELECT 查询必须具有相同数量的列。列中的数据类型也必须具有可比性。在每个 SELECT 语句中,列的顺序必须相同。
Q9. 什么是光标?如何使用光标?
在任何变量声明之后,声明一个游标。SELECT 语句必须始终与游标定义相结合。
要启动结果集,请将光标移到它上面。在从结果集中获取行之前,必须执行 OPEN 语句。
要检索并转到结果集中的下一行,请使用 FETCH 命令。
要禁用光标,请使用 CLOSE 命令。
最后,使用 DEALLOCATE 命令删除游标定义并释放与其连接的资源。
Q10。列出 SQL 中不同类型的关系。
数据库中有不同类型的关系:
一对一 - 这是两个表之间的连接,其中一个表中的每条记录对应于另一个表中的最大记录。
一对多和多对一 - 这是最常见的连接,其中一个表中的记录链接到另一个表中的多个记录。
多对多 – 这用于定义在每一侧都需要多个实例的关系。
自引用关系 ——当一个表必须声明与自身的连接时,这是使用的方法。
Q12。什么是 OLTP?
OLTP,或在线事务处理,允许大量的人实时执行大量的数据库事务,通常是通过互联网。当数据库中的数据被更改、插入、删除或查询时,就会发生数据库事务。
Q13. OLTP 和 OLAP 有什么区别?
OLTP 代表在线事务处理,而 OLAP 代表在线分析处理。OLTP 是一个在线数据库修改系统,而OLAP 是一个在线数据库查询响应系统。
Q14。如何创建与另一个表具有相同结构的空表?
创建空表:使用 INTO 运算符将一个表的记录提取到新表中,同时将 WHERE 子句对所有条目设置为 false,可以创建具有相同结构的空表。结果,SQL 创建了一个具有重复结构的新表来接受提取的条目,但由于 WHERE 子句处于活动状态,因此没有任何内容存储到新表中。
Q15. 什么是PostgreSQL?
1986 年,由计算机科学教授 Michael Stonebraker 领导的团队以 Postgres 的名义创建了 PostgreSQL。它旨在通过确保系统中的数据完整性和容错能力来帮助开发人员开发企业级应用程序。PostgreSQL 是一个企业级、多功能、弹性、开源、对象关系型数据库管理系统,支持可变工作负载和并发用户。国际开发者社区一