50个最佳SQLServer常见面试问题和答案合集

2021年11月28日18:38:36 发表评论 4,161 次浏览
SQL Server 面试问题

结构化查询语言或 SQL 是用于操作关系数据库的编程语言。一些流行的工具将这项技术与高效的专有应用程序相结合。一个这样的例子是Microsoft SQL Server

SQLServer常见的面试题有哪些?由于 SQL Server 非常受欢迎,许多 SQL 工作面试要求对 SQL Server 有很好的了解。学习 SQL Server需要深入了解:

  • 数据库
  • 服务器
  • 数据库管理系统,例如 MySQL、PostgreSQL 和 MongoDB,以及
  • 编程

热门 SQLServer面试问题和答案合集

在这里,我们编制了一份包含 50 个最佳 SQL 服务器面试问题的列表,这些问题对 SQL/数据库管理有抱负的人会非常有帮助。这些问题涵盖了从 SQL Server 的基础知识到其一些高级概念的所有内容。他们来了:

问题:请解释SQL Server 中的两种身份验证方式。

SQLServer面试题解析身份验证模式用于在 Microsoft SQL Server 中对用户进行身份验证。尽管在数据库引擎设置期间会提示用户输入,但可以稍后更改。我们可以在 SQL Server 中使用以下两种身份验证模式之一:

  1. Windows 模式- 启用 Windows 身份验证并禁用 SQL Server 身份验证。为了进行身份验证,服务器使用计算机的用户名和密码。在 Windows 模式下禁用 SQL Server 身份验证。
  2. 混合模式- 启用 Windows 身份验证和 SQL Server 身份验证。在此身份验证模式下,每个数据库都需要唯一的用户名和密码。

要在身份验证模式之间切换,请转到 SQL Server 配置属性 -> 工具 -> 安全页面。

问题:解释一下如何在 SQL Server 中创建表?

答:我们可以使用以下代码在 SQL Server 中创建一个表:

创建表 TableName(column1 数据类型,column2 数据类型,...,columnN 数据类型)

例如,以下代码:

create table Dummy
(
Name varchar(20), Address varchar(40), PhoneNo. nvarchar(12)
)

将创建一个包含 3 列的表 Dummy;姓名、地址和电话号码

问题:你能解释一下 SQL Server Profiler 吗?

答:系统管理员使用 SQL Server Profiler 工具来监视 SQL Server 中的事件。它用于:

  • 创建跟踪。
  • 找出查询中的错误并修复它。
  • 开始、停止、暂停和修改跟踪结果。
  • 将跟踪结果存储在表中。
  • 运行后观察跟踪结果。

SQL Profiler 是一个 GUI,主要用于捕获和保存文件或表的一个或每个事件的数据,以便实时或未来分析。

问题:你知道什么是递归存储过程吗?

答:  SQL Server 提供了一种调用自身的存储过程。这称为递归存储过程。在这里,解决方案重复出现。可以嵌套多达 32 层的存储过程。可以直接或间接调用递归存储过程。

我们可以通过以下两种方式在存储过程中实现递归:

  1. 链递归: 为了实现链递归,扩展了互递归过程。
  2. 相互递归: 使用相互递归的存储过程实现间接递归。

问题:比较本地和全局临时表。

答:全局临时表对所有用户可见。当创建它们的连接关闭时,它们将被删除。另一方面,本地临时表只有在有连接时才可见。一旦连接关闭,这些将被删除。

问题:SQL Server 中的约束是什么?

答:约束是控制数据库表允许的数据类型的一组规则。Microsoft SQL Server 中共有 6 个约束:

  1. 查看
  2. 默认
  3. 外键
  4. 不为空
  5. 首要的关键
  6. 独特的

问题:请解释 CHECK 约束。

答案: CHECK 约束强制执行完整性。它应用于表中的列,以限制可以插入的值。应用 CHECK 约束的列只能具有某些特定值。以下是在 SQL Server 数据库中应用 CHECK 约束的示例:

CREATE TABLE Dummy
(
S.No. int,
Name varchar(255),
Age int,
CONSTRAINT CHK_Dummy CHECK (Age>17)
);

答:是的,可以将 SQL Server 连接到任何支持 OLE-DB 提供程序的数据库服务器。支持 OLE-DB 提供程序的数据库服务器有:

  • IBM Informix
  • 微软访问
  • 甲骨文数据库

问题:请解释子查询及其属性。

答:SQLServer面试问题和答案合集 - 可以嵌套在主查询中的查询,例如 Select 或 Update 语句,称为子查询。当允许使用表达式时,可以使用子查询。子查询也称为 INNER 查询。子查询的属性是:

  • 它可以选择添加 GROUP BY、HAVING 和 WHERE 子句。
  • 它可以添加到 FROM、SELECT 和 WHERE 子句中。
  • 它必须放在主查询的比较运算符的右侧。
  • 它应该括在括号中。这是因为它在主查询之前执行。
  • 它不应该有 ORDER BY 子句。
  • 可以有多个子查询。

问题:你能解释一下子查询的类型吗?

答: 子查询分为三种类型:

  1. 单行子查询- 仅返回单行。
  2. 多行子查询- 返回多行。
  3. 多列子查询- 返回多列。

问题:SQL Server 代理的目的是什么?

SQLServer面试题解析: SQL Server 代理的目的是执行与调度引擎一致的任务。这使得作业在预定的日期和时间运行。SQL Server 代理是一种后台工具,即它作为 Windows 服务继续在后台运行。

因此,SQL Server 代理在 SQL Server 管理员完成常见任务方面发挥着重要作用。因此,它是 SQL Server 的重要组成部分。

问题:请解释Microsoft SQL Server 中的计划任务。

答:对于可以按指定的固定时间间隔在预定时间运行的自动化流程,我们使用预定任务或作业。这有助于减少所需的人工干预。用户还可以决定此类调度任务的执行顺序。

问题:解释一下 SQL Server 中异常是如何处理的?

答:我们使用 TRY----CATCH 结构来处理 SQL Server 中的异常。条件写在 TRY 块中,异常在 CATCH 块中捕获。

问题:SQL Server 中有哪些功能?

答: SQL Server 中的函数是预定义的做某事的方法。SQL Server 函数必须注意以下几点:

  • 它们每次都被编译。
  • 它们可以在任何地方使用。
  • 他们不允许使用 try 和 catch 语句。
  • 他们必须返回一些值或结果。
  • 它们仅适用于输入参数。
  • 它们仅适用于 SELECT 语句。

SQLServer常见的面试题有哪些?SQL Server 中有两种类型的函数;内置和用户定义。SQL Server 函数必须返回结果。当我们在 SQL Server 中使用一个函数时,它必须指定一个返回值类型。Microsoft SQL Server 具有一系列内置功能。它们分类如下:

  • 表值函数
  • 标量值函数
  • 聚合函数
  • 系统功能
    • 聚合函数
    • 配置功能
    • 光标功能
    • 数据和时间函数
    • 数学函数
    • 元数据函数
    • 其他功能
    • 层次结构 ID 函数
    • 行集函数
    • 安全功能
    • 字符串函数
    • 系统统计功能
    • 文本和图像功能

问:FLOOR 函数有什么用?

答:当需要将非整数值向上舍入为前一个整数时,使用 FLOOR 函数。例如,FLOOR (12.8) 将返回 12。

问题:你将如何检查 SQL Server 数据库中的锁?

答: Microsoft SQL Server 带有一个称为 sp_lock 的内置存储过程,用于检查数据库中的锁。

问题:为什么我们有 SIGN 功能?它返回什么?

答案: SIGN 函数检查给定数字是正数、负数还是零。它返回:

  • +1 当数字为正时,
  • -1 当数字为负时,和
  • 当数字为零时为 0。

问题:请区分 UNION 和 UNION ALL 命令。

答: UNION 命令用于从两个表中选择相似的信息。UNION ALL 命令执行相同的操作,但选择所有可用值并且不消除重复行。

问题:CHARINDEX 和 SUBSTR 函数有什么区别?

答案: SUBSTR 函数返回给定字符串的某个特定部分,而 CHARINDEX 函数返回给定字符串中某个字符的字符位置。例如,SUBSTRING ('String', 1, 3) 将返回 Si,而​​ CHARINDEX ('i', 'String', 1) 将返回 4。

问题:动态 SQL 与存储过程有何不同?

答: 存储过程和动态 SQL 都是一组语句。虽然存储过程以编译形式存储在数据库中,但动态 SQL 是在运行时动态构建的。它们不会在动态构建后的运行时存储和执行。

问题:你能解释一下整理吗?

答案:排序规则指定数据库表中的排序顺序。它分为三种类型:

  1. 二进制
  2. 区分大小写
  3. 不区分大小写

问:如何获取Microsoft SQL Server的版本信息?

答:我们在 SQL Server 中使用以下命令来获取版本信息:

Select SERVERPROPERTY('productversion')

问题:为什么我们使用 SET NOCOUNT ON/OFF 语句?

答:默认情况下,NOCOUNT 设置为 OFF。它返回执行命令时受影响的记录总数。当不需要显示受影响的记录数时,可以显式打开它。

问题:你能解释一下 SQL Server 中的 Magic Tables 吗?

答: SQL Server 在进行DML 操作时会自动创建临时表,例如删除、插入和更新。这些被称为魔术表。触发器将它们用于数据事务。

问:SQL Server 中的触发器是什么意思?

答:在 SQL Server 中,触发器是类似于存储过程的数据库对象。这些特殊类型的存储过程会在它们各自的数据库中发生某些特定事件时触发。触发器分为三种类型:

  1. DDL 触发器- 响应以更改、创建和删除开始的 DDL 命令事件而触发。
  2. DML 触发器- 响应从删除、插入和更新开始的 DML 命令事件而触发。

触发器绑定到表并自动执行。没有明确调用它们的规定。它们提供数据完整性,用于在修改前后访问和检查数据。

问题:如何更新 SQL Server 中的数据库?

答:我们可以使用更新命令来实现。它可用于添加或删除新列、替换列中的信息等。 UPDATE 命令的一般语法为:

UPDATE TableName SET ColumnName = NewData where条件

问题:你能解释一下 SQL Server 中的关系吗?

答: SQL Server 中使用关系来链接不同表的列。它们分为三种类型:

  1. 一对一 -表中的单个列在其他表中具有一个从属列。
  2. 一对多/多对一 -表中的单个列在另一个表中具有多个从属列(一对多)。一个表中的多个列在另一个表中具有一个从属列(多对一)。
  3. 多对多- 表中的多个列在其他一些表中具有多个从属列。

问:请解释一下数据库规范化的概念 - SQLServer面试问题和答案合集

答: 数据库规范化是指在关系数据库中组织表以最小化冗余和依赖性的过程。它还提高了表的完整性和性能。

规范化涉及将较大的表划分为较小的表并定义它们之间的关系。数据库规范化过程遵循以下层次结构:

  1. 1NF(第一范式)
  2. 2NF(第二范式)
  3. 3NF(第三范式)
  4. BCNF(Boyce-Codd 范式)
  5. 4NF(第四范式)
  6. 5NF(第五范式)
  7. 6NF(第六范式)

问题:请解释一下 Microsoft SQL Server 中索引的概念?

答:当数据量很大时,数据库表不足以有效地处理这些数据。因此,我们索引其中的列(或视图)。从技术上讲,索引是由 DBMS 创建和维护的数据库对象。

被索引的列称为索引列。这些是有序的,因此支持快速搜索。一个数据库表可以有多个索引。SQL Server 有两种类型的索引:

  1. 聚集索引- 这种类型的索引根据键对数据进行排序和存储。由于行只能按单一顺序排序,因此只能在表中定义聚集索引一次。不允许图像、文本和 nText 数据作为聚集索引。
  2. 非聚集索引- 这是在数据库表之外创建的索引。SQL Server 中每个表最多可以有 999 个非聚集索引,其中每个索引最多可以有 1023 列。与聚集索引一样,这些索引不支持 Image、Text 和 nText 形式的数据。

问题:你能解释一下 SQL Server 中的连接吗?

SQLServer面试题解析:当需要从多个表中检索数据时,我们在数据库操作中使用连接。检索到的数据取决于两件事:

  • 使用的连接类型,以及
  • 不同表的列之间的关系。

SQL Server 具有以下类型的联接:

  1. 完全加入
  2. 内连接/自连接/简单连接
  3. 外连接
    1. 左外连接
    2. 右外连接
    3. 全外连接

问题:你对 Microsoft SQL Server 中的数据库引擎了解多少?

答: SQL Server 数据库引擎,就像 SQL Server 代理和其他 SQL Server 组件一样,作为数据库服务运行。操作系统一启动,数据库服务就会启动。

默认情况下将启动哪些数据库服务是在 SQL Server 安装期间定义的。服务提供核心操作系统功能,例如事件日志记录、文件服务和 Web 服务。

问题:请解释 Microsoft SQL Server Analysis Services。

答: SQLServer常见的面试题有哪些:Microsoft SQL Server Analysis Services 或 SSAS 是一种基于 Web 的分析处理和数据挖掘工具。它旨在允许数据库管理员:

  • 理解分布在众多数据库、表和文件中的数据。
  • 为决策者提供方便快捷的获取可用信息的途径。

SSAS通过允许 DBA 创建、设计和管理包含从各种数据源聚合的数据的多维结构来提供OLAP。

内置的 SQL Server 工具还具有一系列数据挖掘算法,可以从不同来源挖掘数据。应用查询后,SSAS 会立即提供来自不同数据源的快速结果。Analysis Services 依赖于客户端-服务器体系结构。

  • 客户端架构- SASS 具有瘦客户端组件架构。由于所有计算和查询仅由服务器解析,因此每个请求都需要服务器到客户端的连接。一些提供商提供 SSAS 以支持各种编程语言。使用 SOAP 数据包使这些提供者之间的通信成为可能。
  • 服务器体系结构- SSAS 有一个名为 Msmdsrv.exe 的应用程序。它是作为 Windows 服务运行的服务器组件。它由许多组件组成,包括查询处理器和 XMLA 侦听器。Msmdsrv.exe 执行以下操作:
    • 缓存对象,
    • 创建聚合,
    • 处理交易,
    • 管理元数据,
    • 管理服务器资源,
    • 解析从客户端收到的语句,
    • 处理计算,
    • 调度查询,以及
    • 存储维度和单元格数据。

问题:什么是数据库中的非规范化?

答:SQLServer面试问题和答案合集 - 非规范化是有意在数据库表中引入冗余数据以优化性能的过程。此过程会在读取性能的增强与写入性能的某些降低之间进行权衡。

PS - 需要注意的是,非规范化和非规范化数据库是完全不同的概念。未规范化的数据库是尚未规范化的数据库。另一方面,非规范化数据库是先规范化然后非规范化的数据库。

问题:请解释备用服务器的概念。它的种类有哪些?

答:当主数据库服务器离线并且依赖的应用程序持续需要它时,备用数据库服务器会填补它的空缺。备用服务器分为三种类型:

  1. 热备用- 主服务器和备用服务器都在线运行。在这种情况下,两个服务器都包含相同的信息。
  2. 暖备用- 在这里,备用服务器在主服务器的后台运行。主服务器包含的数据定期镜像到备用服务器。
  3. 冷备用- 在这种情况下,仅当主服务器出现故障时才会调用备用服务器。这种类型的备用服务器用于以下情况:
    1. 数据没有频繁变化,或
    2. 依赖的应用程序是非关键的。

问题:Microsoft SQL Server 运行在哪个 TCP/IP 端口?是否可以更改相同?

答: SQL Server 在端口 1433 上运行。是的,可以更改它。我们可以通过网络实用程序 TCP/IP 属性更改它。

问题:SQL Server 中的 DBCC 是什么?我们为什么用它?

回答: DBCC装置DATA BASE Consistency CHecker的。它是一个 SQL Server 命令,用于检查数据库的一致性。它有助于:

  • 监控和审查数据库和表的维护,或
  • 用于验证对数据库或表执行的操作。

执行 DBCC 命令时,数据库引擎会创建数据库快照并继续保持一致的事务状态。之后,数据库引擎针对此存储的数据库快照运行检查,并在完成命令后删除该快照。以下是使用 DBCC 命令的一些示例:

  • DBCC CHECKALLOC - 检查并确保正确分配数据库中的所有页面。
  • DBCC CHECKDB - 确保数据库中的所有表和索引都正确链接。
  • DBCC CHECKFILEGROUP - 检查所有表文件组是否损坏。

问题:你能解释一下日志传送吗?

答:日志传送是指在主数据库服务器上自动备份数据库和事务日志文件,然后在备用服务器上恢复这些文件的过程。几种流行的数据库服务器都支持这种技术,例如:

  • 4D服务器
  • 微软 SQL 服务器
  • MySQL
  • PostgreSQL

日志传送的主要目的是提高数据库可用性。应用日志备份,特别是在每个辅助数据库上。日志传送涉及以下 3 个步骤:

  • 步骤 1 - 在主服务器实例上备份事务日志文件。
  • 步骤 2 - 复制辅助服务器实例上的日志文件。
  • 步骤 3 - 将日志备份文件还原到辅助服务器实例上。

问题:请解释 Microsoft SQL Server 中不同类型的复制。

答:复制是数据库服务器中用于增强数据库可用性的一种技术。它在 Microsoft SQL Server 中分为三种类型:

  1. 合并复制- 将来自不同来源的数据分组到一个单一的、集中的数据库中。一般用于服务器到客户端环境,合并复制适用于多个订阅者在不同时间更新相同数据的场景。
  2. 快照复制- 它以在某个时间点出现的相同方式分发数据。在数据不经常变化的场景中,它是最合适的复制技术。
  3. 事务复制- 它是将数据从发布者分发到订阅者的过程。通常用于服务器到服务器环境。非常适合需要向订阅者进行增量更改传播的情况。

答: Microsoft SQL Server 是领先的数据库管理系统之一。因此,可用于相同目的的第三方工具并不稀缺。以下是一些最受欢迎的:

  • Quest Soft 的 LiteSpeed - 用于准备备份和恢复。
  • RedGate 的 SQL Backup 10 - 用于自动化 SQL Server 备份过程。
  • Idera 的 SQL 检查- 用于监视服务器活动和内存级别。
  • RedGate 的 SQL Doc 2 - 用于记录数据库。
  • RedGate 的 SQL Prompt - 为 SQL Server 提供 IntelliSense。

在 Microsoft SQL Server 中使用第三方工具有几个好处,包括:

  • 更好的洞察力和信息。
  • 增强了对事务日志和事务日志备份的可见性。
  • 备份和恢复环境的企业视图。
  • 更快的备份和恢复。
  • 灵活的备份和恢复选项。
  • 恢复单个数据库对象。
  • 节省时间。
  • 通过加密保护备份。

问题:你对 SQL Server 中的补丁和修补程序有何理解?

答:补丁是用于修复系统中的特定问题并确保相同安全性的程序。修补程序是 Microsoft 发布的专有补丁。这些旨在解决不同的问题,主要是最近发现的安全漏洞。

修补程序主动响应错误。这是因为它们旨在应用于实时系统。修补程序可以是单个文件或多个文件。

问题:请列举 SQL Server 中最常用的跟踪标志。

答:跟踪标志是针对 SQL Server 的,就像 if 语句是针对编程语言的。跟踪标志设置 SQL Server 的特定特征。SQL Server 中使用的一些最常见的跟踪标志是:

  • 1118 - 强制统一范围分配而不是混合页面分配
  • 1204、1205、1222 - 死锁信息
  • 1807 - 网络数据库文件
  • 4013 - 连接的日志记录
  • 4022 - 跳过启动存储过程
  • 8755 - 禁用锁定提示

问:SQL Server 中的各种加密机制是什么?

答: SQL Server 支持一系列加密机制来保护数据。这些是:

  • 非对称密钥
  • 证书
  • 对称键
  • Transact-SQL 函数
  • 透明数据加密

问题:请解释过滤索引。

答:使用 WHERE 子句创建的索引称为过滤索引。它用于过滤表中的某些行。这有助于提高索引维护和查询性能,降低索引存储成本。

问题:能否解释一下 SQL Server 中的一些服务?

SQLServer面试题解析: Microsoft SQL Server 提供一系列服务,可有效处理庞大的数据库。其中一些是:

  • 数据质量服务- DQS 有助于执行一系列数据质量任务,例如更正、丰富和标准化。它提供以下功能来解决数据质量问题:
    • 数据清理
    • 知识库
    • 匹配
    • 分析和监控
    • 参考数据服务
  • 集成服务- 用于开发高性能数据集成和工作流解决方案的平台,例如数据仓库的ETL 操作。包括用于构建和调试包的图形工具和向导。
  • 主数据服务- MDS 解决了有关分析和运营主数据管理的挑战。它提供了一个主数据中心,用于集中维护、管理和组织主数据。MDS 构建在 SQL Server 和 WCF(Windows 通信基础)API 之上。
  • Reporting Services - 一个报告平台,包括基于 SQL Server Reporting Services 多层体系结构的处理组件。处理组件在它们之间交互以检索数据并提供报告。报告服务有两个基本组成部分:
    • 处理器,以及
    • 扩展

问题:请解释 Microsoft SQL Server 中的 COALESCE。

答案: COALESCE 函数返回具有多列的参数中的第一个非空表达式。该函数接受所有类型的值,但仅返回表达式中存在的非空值。一般语法:

COALESCE(表达式1,表达式2,表达式3,......,表达式N)

问题:你知道哪个 SQL Server 表包含存储过程脚本吗?

答:存储过程脚本存储在 Sys.SQL_Modules 表中。但是,存储过程的名称存储在 Sys. 程序表。

问题:SQLServer常见的面试题有哪些请解释 COMMIT 和 ROLLBACK 命令。

回答:伴随 COMMIT 命令的语句在数据库中永久存在。另一方面,带有 ROLLBACK 命令的语句将恢复到以前的状态。

问题:nvarchar 与 varchar 有何不同?

答: varchar 和 nvarchar 数据类型几乎相同。两者的区别在于nvarchar可以存储不同语言的Unicode字符,而varchar不能。此外,与 varchar 数据类型相比,nvarchar 需要更多空间。

问题:你能说出 GETDATE 和 SYSDATETIME 函数之间的区别吗?

答:这两个命令执行相同的操作,即获取当前日期和时间。两者之间的区别在于 GETDATE 以毫秒为单位给出时间,而 SYSDATETIME 给出纳秒。因此,SYSDATETIME 更准确。

问题:你知道 SQL Server 存储用户名和密码的位置吗?

答: SQL Server 中的用户名和密码存储在 sys.server_principals 和 sys.sql_logins 中。用户名以普通文本形式存储,而密码以神秘形式存储。

SQLServer面试问题和答案合集结论

这完成了我们的 50 个最佳 SQL Server 面试问题列表。这些问题将帮助你为即将到来的基于数据库/SQL 的面试做好准备,或根据你的 DBMS/SQL Server 知识进行自我评估。你可能还想查看SQL 书籍和SQL 课程以供参考。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: