下面列出了最常见的SQL Server面试问题和答案。
SQL Server 是 Microsoft 提供的 RDBMS 系统,其主要功能是根据用户请求检索和存储数据。有时它被错误地称为 SQL,但两者是不同的,因为 SQL 是一种语言,而 SQL Server 是支持 SQL 的 Microsoft 产品。
在 RDBMS 中,组织数据以最小化冗余和确保逻辑数据完整性的过程称为规范化。在规范化中,将数据库分成两个或多个表,并在表之间定义关系。规范化技术提高了数据库的性能。
标准化的类型
有使用的归一化类型,如下所示。
但是,前三种类型只是经常使用,其中“NF”代表范式。RD模型“EF Codd”的鼻祖提出了第一个“范式”的“归一化”过程,并一直延续到第三范式。
它是一个试图通过添加冗余数据来优化数据库性能的过程。表中有意引入冗余以提高性能,称为反规范化。去规范化过程增强了读取性能,而写入性能会出现一些下降。可以通过将一组数据做成冗余形式来实现。非规范化和非规范化数据库彼此完全不同。在对任何数据库进行反规范化的过程之前,首先应该对其进行规范化。
排序敏感度用于定义对字符数据的字符串进行排序和比较的规则。字符数据排序的基本规则是正确的字符序列、区分大小写、字符宽度和重音符号等。
不同类型的校对敏感度:
Case Sensitivity:区分大小写用唯一值定义每个字符,因为字母字符 A 和 a 被单独处理,因为它们对于计算机语言具有不同的 ASCII 值
Accent sensitivity:重音敏感度与重音是否关闭有关,因为a和á都应该区别对待
Kana sensitivity::假名敏感度定义了两个日语单词之间的区别:平假名和片假名
Width sensitivity:区分单字节字符(半角)和同一个字符的双字节字符的表示
备用服务器是当主服务器脱机时联机的服务器类型,应用程序需要服务器的持续可用性。始终需要一种可以将主服务器转换为辅助或备用服务器的机制。
备用服务器分为三种类型:
热备用:热备用方法是一种冗余方法,其中主备用系统和备用系统同时运行,因此数据也实时存在于备用服务器中,这样两个系统都包含相同的信息。
热备份:热备份是一种冗余方法,其中从系统运行在主系统的后台。数据定期镜像到辅助服务器中,因此在这种方法中,有时两个服务器不包含相同的数据。
冷备用:冷备用是一种冗余方法,其中仅在主服务器出现故障时才调用辅助服务器。冷备用系统用于数据不经常更改或用于关键应用程序的情况。主服务器与备用服务器的物理替换发生在冷备用中。
聚集索引:聚集索引是一种特殊类型的索引,它重新排序表中记录的物理存储方式。它给出了物理存储在数据库中的数据序列。因此一张表只能有一个聚集索引。聚集索引的叶节点包含数据页。聚集索引的索引 id 为 0。因此主键约束会自动创建聚集索引。
非聚集索引:非聚集索引是一种特殊类型的索引,其中索引的逻辑顺序与磁盘上行的物理存储顺序不匹配。在非聚集索引中数据和索引存储在不同的地方。非聚集索引的叶节点不包含数据页。相反,叶节点包含索引行。非聚集索引的索引 id 大于 0。
HAVING Clause: HAVING CLAUSE 仅与 SELECT 语句一起使用。它通常用于查询中的 GROUP BY 子句。
如果未使用 GROUP BY,则 HAVING 的工作方式类似于 WHERE 子句。HAVING 子句可以与聚合函数一起使用。
句法:
SELECT expr1, expr2, expr3.., FROM tables WHERE condition GROUP BY expr1, expr2, expr3.., HAVING condition;
WHERE 子句:WHERE 子句在查询中成为 GROUP BY 函数的一部分之前应用于每一行。'WHERE' 子句不能与聚合函数一起使用。
WHERE condition;
递归存储过程被定义为一种解决问题的方法,其中解决方案重复出现。SQL Server 支持自己调用的递归存储过程。它最多可以嵌套 32 层。它可以直接或间接地被自己调用
存储过程中有两种实现递归的方式:
存储过程的优点列表:
一对一关系:它可以实现为单个表,很少实现为具有主键和外键关系的两个表。
如果一个表中的实体仅与另一表中的一个实体有链接,则存在一对一关系。让我们举一个员工和他们的员工 ID 的例子,这样另一张桌子上的特定员工就会有一个唯一的员工 ID。
您必须在 SQL Server 配置管理器中进行更改以隐藏 SQL Server 实例。
按照以下说明启动 SQL Server 配置管理器并执行以下操作:
CHECK 约束应用于表中的列以限制可以放置在列中的值。它强制执行完整性。在单列上使用检查约束后,我们只能为该特定列提供一些特定值。检查约束为表中的每一列应用一个条件。
例子:
CREATE TABLE Employee ( EMP_ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, City varchar(255), CONSTRAINT CHK_Employee CHECK (Age>20AND City= 'Greenville') );
SQL Server 代理在 SQL Server 管理员 (DBA) 的日常任务中起着至关重要的作用。它是微软 SQL 服务器的重要组成部分之一。服务器代理的目的是使用调度引擎轻松实现任务,允许我们的作业在预定的日期和时间运行。SQL Server 代理使用 SQL Server 存储计划的管理任务信息。
COALESCE 用于返回参数中的第一个非空表达式。此函数用于从参数中的多列返回非空值。COALESCE 接受所有值,但它只返回表达式中存在的非空值。
COALESCE(expr1, expr2, expr3,......,expr n)
SQL Server 在端口 1433 上运行。是的,它可以通过网络实用程序 TCP/IP 属性进行更改。
身份验证模式用于在SQL Server 中对用户进行身份验证,可以在设置数据库引擎时选择。
SQL Server 支持两种身份验证模式:窗口身份验证模式和混合模式。
Window 身份验证模式:此身份验证模式用于通过 Microsoft NT 4.0 或 window 2000 用户帐户进行连接。在 Windows 身份验证服务器中,以计算机的用户名和密码进行身份验证。在此模式下禁用 SQL 服务器身份验证模式。
混合模式:用于连接使用窗口身份验证或 SQL Server 身份验证的 SQL Server 实例。在 SQL Server 身份验证模式下,特定数据库需要唯一的用户名和密码,因为它不依赖于 Windows 帐户。
Microsoft SQL Server Profiler 是一个图形用户界面,允许系统管理员监视数据库引擎的事件。SQL 服务器探查器跟踪将每个事件监视到一个文件。SQL探查器可用于数据的实时监控,也可用于未来的数据分析。
您可以使用 SQL Server Profiler 执行以下操作 -
您可以创建跟踪。
您可以在跟踪运行时查看跟踪结果。
您可以将跟踪结果存储在表格中。
您可以找出查询中的错误并对其进行诊断。
如果需要,您可以启动、停止、暂停和修改跟踪结果。
SQL Server 代理是 Microsoft SQL Server 的一个组件。它是Microsoft SQL Server 的后台工具,因此作为窗口服务在后台持续运行。SQL Server 代理允许数据库管理员处理自动化任务和安排作业。它运行窗口服务,因此可以在系统启动时自动启动,也可以手动启动。
计划任务可让您以定期或可预测的周期运行的自动化方式管理任务。您可以安排管理任务并确定任务的运行顺序。
DBCC 代表数据库一致性检查器。该命令用于检查数据库的一致性。DBCC 命令帮助查看和监控表、数据库的维护,以及验证对数据库所做的操作等。例如:
DBCC CHECKDB:它确保数据库中的表和索引正确链接。
DBCC CHECKALLOC:它检查数据库中的所有页面并确保所有页面都正确分配。
DBCC CHECKFILEGROUP:它检查所有表文件组是否有任何损坏。
如果用户执行上述命令,则通过数据库引擎创建一个数据库快照,并继续保持一致的事务状态。之后,它针对存储的数据库快照运行检查,并在命令完成后,删除快照。
sp_renamedb '旧名', '新名';
是的,它可以链接到任何服务器。它有来自 Microsoft 的 OLE-DB 提供程序,允许链接。
抽象类:
界面:
会话对象用于维护每个用户的会话。如果用户进入应用程序,他会得到一个会话 ID,当他离开应用程序时,会话 ID 就会被删除。如果他再次进入应用程序,他会得到一个不同的会话ID,但对于应用程序对象,一旦生成了广告ID,它就会维护整个应用程序。
主键和唯一键之间没有区别,但是,唯一键将允许单个 NULL,但在主键中,不接受 NULL。
值类型和引用类型在声明语法和用法上可能相似,但它们的语义是不同的。值类型和引用类型因存储区域而异。
值类型存储在堆栈中,而引用类型存储在堆中。
值类型存储真实数据,而引用类型存储对数据的引用。
与引用类型相比,值类型的访问速度更快。
值类型可以包含空值,而引用类型不能包含空值。
值类型派生自 System. 值类型而引用类型是从系统对象派生的。表示值类型存储特定值,但引用类型存储对象的引用或地址
字符串、对象、数组是引用类型,因为它们存储在堆中并且本质上是动态的
装箱:将值类型(整数、字符等)隐式转换为引用类型(对象)称为装箱。在装箱过程中,值类型(通常存储在堆栈中)是在堆上而不是堆栈上分配的。装箱将一个值包装在对象内,该值可以存储在堆部分中。
例子
//Boxing the variable i: int i= 56; Object obj=i;
拆箱:将相同的引用类型(由装箱过程创建)显式转换回值类型称为拆箱。在拆箱过程中,一个装箱的值类型从堆中拆箱并分配到栈上。
//UNBoxing the variable i: obj=56; i= (int) obj;
GET 和 POST 方法是“表单提交”方法。两者都用于将数据从客户端发送到服务器端。这些是 GET 和 POST 方法之间的一些差异 -
在 GET 方法中缓存是可能的,而在 POST 方法中是不可能的。
GET 方法只允许 ASCII 字符数据类型,而 POST 方法没有限制,它也允许二进制数据。
在 GET 方法中,字符串的长度是有限制的,而在 POST 方法中,字符串的长度是没有限制的。
Get 方法不安全,因为它可以添加书签,但是 post 方法是安全的,因为它不能添加书签
Get 方法存储在浏览器历史记录中,但 post 方法不存储在浏览器历史记录中
日志传送是在主数据库服务器上自动备份数据库和事务日志文件,然后在备用服务器上恢复它们的过程。许多服务器都支持这种技术来维护备份服务器,例如 Microsoft SQL Server、4D 服务器、MySQL 和 PostgreSQL。
日志传送的主要目的是像复制一样提高数据库可用性。在每个辅助数据库上,特别应用日志备份。
日志传送过程的步骤:
SQL Server 中有三种类型的复制。
1) 快照复制:快照复制完全按照特定时刻出现的数据进行分发。快照复制是复制不经常更改的数据的最佳方法。快照复制是最简单的维护方式。
2)事务复制:事务复制是将数据从发布者分发到订阅者的过程。事务复制一般用于“服务器到服务器”环境。当您希望将增量更改传播到订阅者时,这是合适的。
3)合并复制:合并复制将来自不同来源的数据分组到一个集中的数据库中。它一般用在服务器到客户端的环境中。当多个订阅者可能在不同时间更新相同数据时,合并复制是合适的。
SQL Server 中使用的第三方工具列表:
使用第三方工具的优势列表:
SQL Server 中有四种类型的排序规则敏感性:
在问题 5 中详细解释
修补程序是应用于实时系统的小软件补丁。修补程序是单个累积包,其中包含一个或多个用于解决软件产品中的问题的文件。
例如- 软件错误
补丁是安装在机器上的程序,用于纠正系统中出现的问题,保证系统的安全。此修补程序是 Microsoft 提供的一种补丁程序。
在 Microsoft SQL Server 中,修补程序是旨在解决特定问题的小补丁,最常见的是新发现的安全漏洞。热修复响应主动针对任何错误
SQL Server 中的跟踪标志设置了服务器的特定特征。它用作 SQL Server 的“IF”条件。与 SQL Server 一起使用的最常见跟踪标志是:
Open Cluster Administrator 检查 SQL Server 组,您可以在其中看到当前所有者。所以当前所有者是主动节点,其他节点是被动节点。因为在同一时间只有一个节点可以是主动的,并且在两个节点中必须处于被动模式。
FLOOR 函数用于将非整数值向上舍入为前一个最小整数。Floor 表达式在向下舍入表达式后返回一个唯一值。
FLOOR (expression)
例如:
FLOOR (7.3)
SIGN 函数用于定义指定的数字是否为正数、负数和零。这将返回 +1、-1 或 0。SIGN 函数返回带有符号的值。
SIGN (number) If the number>0, then it will return +1 If the number=0, then it will return 0 If the number<0, then it will return -1
在 SQL Server 中,主查询中的查询(如选择、更新、插入或删除)称为子查询。它也称为内部查询。
子查询可以添加到 WHERE 子句、FROM 子句或 SELECT 子句。
下面给出了子查询的一些属性:
用户可以使用 SQL Server Management Studio 或 SQL Server 中的 Transact-SQL 从数据库中删除 TABLE
以下是使用 SQL Server 管理删除表的步骤
我们可以使用加密来确保 SQL Server 中数据库中的数据安全。以下是 SQL Server 中使用的加密机制:
由 SQL Server 内部自动创建和管理的用于存储任何 DML(SELECT、DELETE、UPDATE 等)操作的插入、更新值的表,在 SQL Server 中称为魔术表。触发器最好使用它。
CDC 被称为“变更数据捕获”。它捕获应用于 SQL Server 表的 INSERT、DELETE 和 UPDATE 的最近活动。它以兼容的格式记录在 SQL 服务器表中所做的更改。
SQL Server 中存在三种类型的关系:
原文链接:https://codingdict.com/