关系数据库SQL面试排名前100道问答题

21-12-30 banq
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 有哪些不同的子集?

  • 数据定义语言 (DDL) – 它允许您对数据库执行各种操作,例如 CREATE、ALTER 和 DELETE 对象。
  • 数据操作语言 (DML) – 它允许您访问和操作数据。它可以帮助您从数据库中插入、更新、删除和检索数据。
  • 数据控制语言(DCL)——它允许您控制对数据库的访问。示例 – 授予、撤销访问权限。

 
Q3:你说的 DBMS 是什么意思?它有哪些不同的类型?

一个 数据库管理系统 (DBMS)是一个软件应用程序与用户,应用程序和数据库本身交互,以捕获和分析数据。数据库是结构化的数据集合。
DBMS 允许用户与数据库交互。 存储在数据库中的数据可以修改、检索和删除,并且可以是任何类型,如字符串、数字、图像等。
有两种类型的 DBMS:

  • 关系数据库管理系统:数据存储在关系(表)中。示例 – MySQL。
  • 非关系型数据库管理系统:没有关系、元组和属性的概念。示例 – MongoDB

 

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 是一个企业级、多功能、弹性、开源、对象关系型数据库管理系统,支持可变工作负载和并发用户。国际开发者社区一直在支持它。PostgreSQL 由于其容错特性而在开发人员中获得了极大的吸引力。这是一个非常可靠的数据库管理系统,得益于其高水平的弹性、完整性和准确性,社区工作超过了 20 年。许多在线、移动、地理空间和分析应用程序使用 PostgreSQL 作为其主要数据存储或数据仓库。

 
Q16. 什么是 SQL 注释?

SQL 注释用于阐明 SQL 语句的各个部分并防止执行 SQL 语句。注释在许多编程语言中都非常重要。Microsoft Access 数据库不支持注释。因此,在 Mozilla Firefox 和 Microsoft Edge 的示例中使用了 Microsoft Access 数据库。单行注释:以两个连续的连字符 (-) 开头。多行注释:以 /* 开头,以 */ 结尾。

 
Q17. NVL() 函数的用途是什么?

您可以使用 NVL 函数将空值替换为默认值。如果第一个参数为空,则该函数返回第二个参数的值。如果第一个参数不是 null,则将其保留。
这个函数用在 Oracle 中,而不是 SQL 和 MySQL 中。MySQL 有 IFNULL() 和 SQL Server 有 ISNULL() 函数,而不是 NVL() 函数。
让我们转到此 SQL 面试问题中的下一个问题。

 
Q18. 解释字符操作函数?解释它在 SQL 中的不同类型。

使用字符操作例程更改、提取和编辑字符串。该函数将对输入字符串执行其操作,并在向其中提供一个或多个字符和单词时返回结果。
SQL中的字符操作函数如下:

  • A) CONCAT(连接两个或多个值):此函数用于将两个或多个值连接在一起。第二个字符串总是附加到第一个字符串的末尾。
  • B) SUBSTR:该函数返回从给定起点到给定终点的一段字符串。
  • C) LENGTH:该函数以数字形式返回字符串的长度,包括空格。
  • D) INSTR:该函数计算字符串中字符或单词的精确数字位置。
  • E) LPAD:对于右对齐的值,它返回左侧字符值的填充。
  • F) RPAD:对于左对齐的值,它返回右侧字符值的填充。
  • G) TRIM:该函数从字符串的开头、结尾或两端删除所有定义的字符。它还减少了浪费的空间量。
  • H) REPLACE:该函数用指定的其他字符串值替换单词或字符串(子字符串)的一部分的所有实例。

 
Q20。RANK() 和 DENSE_RANK() 函数之间有什么区别?

结果集中的 RANK() 函数定义了有序分区中每一行的排名。如果两行具有相同的排名,则排名中的下一个数字将是前一个排名加上一些重复项。例如,如果我们在第 4 位有 3 条记录,则指示的下一个级别是 7。
DENSE_RANK() 函数根据提供的列值为分区内的每一行分配一个不同的排名,没有间隔。它始终表示按优先顺序排列的排名。如果两行具有相同的等级,则此函数将为它们分配相同的等级,下一个等级是下一个连续数字。例如,如果我们在第 4 级有 3 条记录,则指示的下一个级别是 5。

 

Q22. 什么是 UNIQUE 约束?
UNIQUE 约束可防止同一列中的相同值出现在两条记录中。UNIQUE 约束保证列中的每个值都是唯一的。

 
Q23. 什么是自联接Self-Join?

自联接是一种可用于连接两个表的联接。因此,它是一元关系。表的每一行都附加到自身以及自联接中同一表的所有其他行。因此,自联接主要用于组合和比较同一数据库表中的行。

 
Q24. 什么是 SELECT 语句?

SELECT 命令从一个或多个数据库表或视图中获取零个或多个行。在大多数应用程序中,最常用的数据操作语言 (DML) 命令是 SELECT。SELECT 查询定义了一个结果集,而不是如何计算它,因为 SQL 是一种声明式编程语言。

 
Q25. 在 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 子句不能过滤聚合记录。

 
Q26. 什么是 UNION、MINUS 和 INTERSECT 命令?

UNION 运算符用于合并两个表的结果,同时删除重复条目。
MINUS 运算符用于从第一个查询而不是从第二个查询返回行。
INTERSECT 运算符用于将两个查询的结果合并为一行。在运行上述任一 SQL 语句之前,必须满足某些要求——
在子句中,每个 SELECT 查询必须具有相同数量的列。
列中的数据类型也必须具有可比性。
在每个 SELECT 语句中,列的顺序必须相同。

 
Q27. 什么是Cursor光标?如何使用光标?

在任何变量声明之后,声明一个游标。SELECT 语句必须始终与Cursor游标定义相结合。
要启动结果集,请将光标移到它上面。在从结果集中获取行之前,必须执行 OPEN 语句。
要检索并转到结果集中的下一行,请使用 FETCH 命令。
要禁用光标,请使用 CLOSE 命令。
最后,使用 DEALLOCATE 命令删除游标定义并释放与其连接的资源。

 
Q28. 列出 SQL 中不同类型的关系。

数据库中有不同类型的关系:一对一 - 这是两个表之间的连接,其中一个表中的每条记录对应于另一个表中的最大记录。一对多和多对一 - 这是最常见的连接,其中一个表中的记录链接到另一个表中的多个记录。多对多 – 这用于定义在每一侧都需要多个实例的关系。自引用关系——当一个表必须声明与自身的连接时,这是使用的方法。

 
Q29. 什么是 SQL 示例?

SQL 是一种数据库查询语言,允许您编辑、删除和请求数据库中的数据。以下语句是 SQL 语句的几个示例:

  • Select
  • 插入
  • 更新
  • 删除
  • 创建数据库
  • 更改数据库

 
Q30. 什么是基本的 SQL 技能?

SQL 技能可帮助数据分析师从关系数据库中创建、维护和检索数据,将数据分为列和行。它还使用户能够有效地检索、更新、操作、插入和更改数据。
SQL 专家应该具备的最基本的能力是:

  1. 数据库管理
  2. 构建数据库
  3. 创建 SQL 子句和语句
  4. SQL 系统技能,如 MYSQL、PostgreSQL
  5. PHP 专业知识很有用。
  6. 分析 SQL 数据
  7. 使用 WAMP 和 SQL 创建数据库
  8. OLAP 技能

 
Q35. NoSQL 与 SQL

综上所述,SQL 和 NoSQL 的五个主要区别如下:
关系数据库是 SQL,而非关系数据库是 NoSQL。
SQL 数据库具有指定的架构并采用结构化查询语言。对于非结构化数据,NoSQL 数据库使用动态模式。
SQL 数据库垂直扩展,但 NoSQL 数据库水平扩展。
NoSQL 数据库是文档、键值、图形或宽列存储,而 SQL 数据库是基于表的。
SQL 数据库擅长处理多行事务,而 NoSQL 擅长处理文档和 JSON 等非结构化数据。
 

Q40。什么是数据库黑盒测试?
黑盒测试是一种软件测试方法,它涉及在不知道内部代码结构、实现细节或内部路由的情况下测试软件应用程序的功能。黑盒测试是一种软件测试,专注于软件应用程序的输入和输出,完全由软件需求和规范驱动。行为测试是它的另一个名称。Q41。有哪些不同类型的 SQL 沙箱?
数据库培训
SQL Sandbox 是 SQL Server 中的一个安全环境,可以在其中运行不受信任的程序。共有三种不同类型的 SQL 沙箱:
安全访问沙盒:在这种环境中,用户可以执行 SQL 活动,如构建存储过程、触发器等,但他们无法访问内存或创建文件。
外部访问沙箱:用户可以访问文件而不能改变内存分配。
不安全访问沙箱:这包含允许用户访问内存的不可信代码。
 

Q45. SQL 中的联接Join是什么?
JOIN 子句用于根据它们之间的相关列组合来自两个或多个表的行。它用于合并两个表或从那里检索数据。有 4 种类型的连接,您可以参考以下内容:


  • 内连接:SQL中的内连接是最常见的连接类型。它用于返回满足连接条件的多个表中的所有行。

  • 左联接: SQL 中的左联接用于返回左表中的所有行,但仅返回右表中满足联接条件的匹配行。
  • 右联接: SQL 中的右联接用于返回右表中的所有行,但仅返回左表中满足联接条件的匹配行。
  • 全联接:全联接 在任何表中存在匹配时返回所有记录。因此,它返回左侧表中的所有行和右侧表中的所有行。

 
Q46. 
SQL 中的 CHAR 和 VARCHAR2 数据类型有什么区别?
Char 和 Varchar2 都用于字符数据类型,但 varchar2 用于可变长度的字符串,而 Char 用于固定长度的字符串。例如,char(10) 只能存储 10 个字符,并且不能存储任何其他长度的字符串,而 varchar2(10) 可以存储任何长度,即在这个变量中 6,8,2。

 
Q47. 什么是主键?



SQL主键是一列(或列的集合)或一组列的唯一标识表中的每一行。

  • 唯一标识表中的单行
  • 不允许空值

示例 - 在 Student 表中,Stu_ID 是主键。
 

Q48. 什么是约束?
SQL中的约束用于指定表的数据类型的限制。它可以在创建或更改表语句时指定。约束的样本是:

  • 非空
  • 查看
  • 默认
  • 独特的
  • 首要的关键
  • 外键

 
Q50。什么是唯一键?

  • 唯一标识表中的单行。
  • 每个表允许多个值。
  • 允许空值。

 
Q51。SQL中的外键是什么?

  • 外键通过强制两个表中的数据之间的链接来保持参照完整性。
  • 子表中的外键引用父表中的主键。
  • 该外键约束防止行动将破坏孩子和父表之间的链接。

 
Q52。你说的数据完整性是什么意思?

数据完整性定义了存储在数据库中的数据的准确性和一致性。它还定义了完整性约束,以便在数据输入应用程序或数据库时对数据实施业务规则。

 
Q53. SQL中的聚集clustered索引和非聚集索引有什么区别?

SQL中聚集索引和非聚集索引的区别是:

  1. 聚集索引用于从数据库中轻松检索数据并且速度更快,而从非聚集索引读取相对较慢。
  2. 聚集索引改变了记录在数据库中的存储方式,因为它通过设置为聚集索引的列对行进行排序,而在非聚集索引中,它不会改变它的存储方式,但它会在一个单独的对象中创建一个单独的对象搜索后指向原始表行的表。
  3. 一张表只能有一个聚集索引,而它可以有多个非聚集索引。

 
Q54. 写一个 SQL 查询来显示当前日期?

在 SQL 中,有一个名为GetDate()的内置函数,它有助于返回当前时间戳/日期。

 
Q55. 你对查询优化的理解是什么?

确定具有最低估计成本的评估查询计划的阶段称为查询优化。
查询优化的优点如下:

  • 输出提供更快
  • 可以在更短的时间内执行更多的查询
  • 降低时间和空间复杂度

 
Q56. 非规范化是什么意思?

非规范化是指一种用于从数据库的较高到较低形式访问数据的技术。它可以帮助数据库管理员提高整个基础架构的性能,因为它在表中引入了冗余。它通过合并将来自不同表的数据合并到单个表中的数据库查询来将冗余数据添加到表中。

 
Q57. 什么是实体和关系?

实体:现实世界中的人、地点或事物,其数据可以存储在数据库中。表存储表示一种实体的数据。例如 – 银行数据库有一个客户表来存储客户信息。客户表将此信息存储为每个客户的一组属性(表中的列)。

关系:相互关联的实体之间的关系或链接。例如 – 客户名称与客户帐号和联系信息相关,它们可能在同一个表中。单独的表(例如,客户到帐户)之间也可能存在关系。
让我们转到此 SQL 面试问题中的下一个问题。

 
Q58. 什么是索引?

索引是指允许更快地从表中检索记录的性能调整方法。索引为每个值创建一个条目,因此检索数据会更快。

 
Q59 . 解释 SQL 中不同类型的索引。

SQL中的索引分为三种类型

唯一索引:
如果列是唯一索引的,则此索引不允许字段具有重复值。如果定义了主键,则可以自动应用唯一索引。

聚集索引:
该索引对表的物理顺序进行重新排序,并根据键值进行搜索。每个表只能有一个聚集索引。

非聚集索引:
非聚集索引不会改变表的物理顺序并维护数据的逻辑顺序。每个表可以有许多非聚集索引。

 
Q60。什么是归一化,它的优点是什么?

SQL中的规范化是组织数据以避免重复和冗余的过程。一些优点是:

  • 更好的数据库组织
  • 具有较小行的更多表
  • 高效的数据访问
  • 更大的查询灵活性
  • 快速查找资料
  • 更容易实施安全
  • 允许轻松修改
  • 减少冗余和重复数据
  • 更紧凑的数据库
  • 确保修改后数据一致

 
Q62. 解释不同类型的归一化。

有许多连续的标准化级别。这些被称为范式。每个连续的范式都依赖于前一个范式。前三个范式通常就足够了。
在数据库表中使用范式来删除或减少重复。以下是多种形式:

第一范式:当关系中的每个属性都是单值属性时,称其为第一范式。当关系具有复合或多值属性时,第一范式被破坏。

第二范式:
如果关系满足第一范式的要求并且不包含任何部分依赖关系,则该关系是第二范式。在 2NF 中,关系没有部分依赖,这意味着它没有依赖于任何表候选键的任何合适子集的非主要属性。通常,可以通过设置单列主键来解决问题。

第三范式:如果一个关系满足第二范式的要求,并且不存在传递依赖,则称其为第三范式。

 
Q63. 什么是 OLTP?

OLTP,或在线事务处理,允许大量的人实时执行大量的数据库事务,通常是通过互联网。当数据库中的数据被更改、插入、删除或查询时,就会发生数据库事务。
OLTP 和 OLAP 有什么区别?
OLTP 代表在线事务处理,而 OLAP 代表在线分析处理。OLTP 是一个在线数据库修改系统,而OLAP 是一个在线数据库查询响应系统。

 
Q65. 什么是PostgreSQL?

1986 年,由计算机科学教授 Michael Stonebraker 领导的团队以 Postgres 的名义创建了 PostgreSQL。它旨在通过确保系统中的数据完整性和容错能力来帮助开发人员开发企业级应用程序。PostgreSQL 是一个企业级、多功能、弹性、开源、对象关系型数据库管理系统,支持可变工作负载和并发用户。国际开发者社区一直在支持它。PostgreSQL 由于其容错特性而在开发人员中获得了极大的吸引力。这是一个非常可靠的数据库管理系统,得益于其高水平的弹性、完整性和准确性,社区工作超过了 20 年。许多在线、移动、地理空间和分析应用程序使用 PostgreSQL 作为其主要数据存储或数据仓库。

 
Q66. 什么是 SQL 注释?

SQL 注释用于阐明 SQL 语句的各个部分并防止执行 SQL 语句。注释在许多编程语言中都非常重要。Microsoft Access 数据库不支持注释。因此,在 Mozilla Firefox 和 Microsoft Edge 的示例中使用了 Microsoft Access 数据库。单行注释:以两个连续的连字符 (-) 开头。多行注释:以 /* 开头,以 */ 结尾。
让我们转到此 SQL 面试问题中的下一个问题。

 
Q67. RANK() 和 DENSE_RANK() 函数之间有什么区别?

结果集中的 RANK() 函数定义了有序分区中每一行的排名。如果两行具有相同的排名,则排名中的下一个数字将是前一个排名加上一些重复项。例如,如果我们在第 4 位有 3 条记录,则指示的下一个级别是 7。
DENSE_RANK() 函数根据提供的列值为分区内的每一行分配一个不同的排名,没有间隔。它始终表示按优先顺序排列的排名。如果两行具有相同的等级,则此函数将为它们分配相同的等级,下一个等级是下一个连续数字。例如,如果我们在第 4 级有 3 条记录,则指示的下一个级别是 5。

 
Q68. 什么是 SQL 注入?

SQL 注入是网站和 Web 应用程序代码中的一种缺陷,允许攻击者控制后端进程并访问、检索和删除存储在数据库中的敏感数据。在这种方法中,恶意 SQL 语句被输入到数据库输入字段中,一旦执行,数据库就会暴露给攻击者。通过利用数据驱动的应用程序,该策略被广泛用于访问敏感数据并在数据库上执行管理任务。SQLi 攻击是它的另一个名称。
下面是一些 SQL 注入的例子:

  • 访问秘密数据以更改 SQL 查询以获得所需的结果。
  • UNION 攻击旨在从多个数据库表中窃取数据。
  • 检查数据库以获取有关数据库版本和结构的信息

 
Q69. SQL 中有多少聚合函数可用?

SQL 聚合函数提供有关数据库数据的信息。例如,AVG 返回数据库列值的平均值。
SQL 提供了七 (7) 个聚合函数,如下所示:
AVG():返回指定列的平均值。COUNT():返回表行数,包括空值行。MAX():返回组中的最大值。MIN():返回组中的最小值。SUM():返回指定列的总和值(非空)。FIRST():返回表达式的第一个值。LAST():返回表达式的最后一个值。

 
Q70。使用 ORDER BY 子句的默认数据排序是什么?怎么可能改?

MySQL 中的 ORDER BY 子句可以在没有 ASC 或 DESC 修饰符的情况下使用。当 ORDER BY 子句中没有此属性时,排序顺序预设为 ASC 或升序。

 
Q71。我们如何使用 DISTINCT 语句?它的用途是什么?

SQL DISTINCT 关键字与 SELECT 查询结合使用以删除所有重复记录并仅返回唯一记录。有时一个表可能有多个重复的记录。SQL 中的 DISTINCT 子句用于从 SELECT 语句的结果集中消除重复项。

 
Q72. COALESCE 函数的语法和用途是什么?

从一系列表达式中,COALESCE 函数返回第一个非 NULL 值。表达式按照它们提供的顺序进行计算,函数的结果是第一个非空值。只有当所有输入都为空时,COALESCE 方法才返回 NULL。
COALESCE 函数的语法是 COALESCE (exp1, exp2, .... expn)

 
Q73. 数据库中的 ACID 属性是什么?

ACID 代表原子性、一致性、隔离性、持久性。它用于确保在数据库系统中可靠地处理数据事务。

  • 原子性: 原子性是指完全完成或失败的事务,其中事务是指数据的单个逻辑操作。这意味着如果任何事务的一部分失败,则整个事务失败并且数据库状态保持不变。
  • 一致性: 一致性确保数据必须满足所有验证规则。简而言之,您可以说您的事务永远不会在未完成其状态的情况下离开数据库。
  • 隔离:隔离 的主要目标是并发控制。
  • 持久性: 持久性意味着如果事务已经提交,它将发生介于两者之间的任何事情,例如断电、崩溃或任何类型的错误。

 
Q74. SQL中的“触发器”是什么意思?

SQL 中的触发器是一种特殊类型的存储过程,它被定义为就地或在数据修改后自动执行。它允许您在对特定表执行插入、更新或任何其他查询时执行一批代码。

 
Q75. SQL 中有哪些不同的运算符?

SQL 中有三个可用的运算符,即:

  1. 算术运算符
  2. 逻辑运算符
  3. 比较运算符

 
Q76. NULL 值是否与零或空格相同?

NULL 值与零或空格的值完全不同。NULL 值表示不可用、未知、已分配或不适用的值,而零是数字,空格是字符。

 
Q77. 交叉连接和自然连接有什么区别?

交叉联接产生两个表的交叉积或笛卡尔积,而自然联接基于两个表中具有相同名称和数据类型的所有列。

 
Q78. SQL中的子查询是什么?

子查询是另一个查询中的查询,其中定义了一个查询以从数据库中检索数据或信息。在子查询中,外部查询称为主查询,而内部查询称为子查询。子查询总是首先执行,子查询的结果传递给主查询。它可以嵌套在 SELECT、UPDATE 或任何其他查询中。子查询还可以使用任何比较运算符,例如 >、< 或 =。

 
Q79. 子查询有哪些不同类型?

有两种类型的子查询,即相关和非相关。

相关子查询:这些查询从外部查询中引用的表中选择数据。它不被视为独立查询,因为它引用另一个表并引用表中的列。

Non-Correlated subquery:这个查询是一个独立的查询,其中子查询的输出被替换在主查询中。
让我们转到此 SQL 面试问题中的下一个问题。

 
Q80。列出获取表中记录数的方法?

在 SQL中计算表中的记录数,可以使用以下命令:
SELECT * FROM table1 SELECT COUNT(*) FROM table1 从 sysindexes 中选择行 WHERE id = OBJECT_ID(table1) AND indid < 2

 
Q83. SQL 中的组函数需要什么?

组函数处理一组行并为每组返回一个结果。一些常用的组函数是:AVG、COUNT、MAX、MIN、SUM、VARIANCE。

 
Q84. 什么是关系,它们是什么?

关系或链接是相互关联的实体之间的关系。关系被定义为数据库中表之间的连接。有多种关系,即:

  • 一对一的关系。
  • 一对多关系。
  • 多对一关系。
  • 自引用关系。

 
Q85. 如何在插入数据时在列中插入 NULL 值?

SQL 中的 NULL 值可以通过以下方式插入:

  • 通过从列列表中省略列隐式。
  • 通过在 VALUES 子句中明确指定 NULL 关键字

 
Q86. “BETWEEN”和“IN”条件运算符之间的主要区别是什么?

BETWEEN 运算符用于根据行中的值范围显示行,而 IN 条件运算符用于检查特定值集中包含的值。

示例:
SELECT * FROM Students where ROLL_NO BETWEEN 10 AND 50; SELECT * FROM student where ROLL_NO IN (8,15,25);

 
Q87. 为什么要使用 SQL 函数?

SQL 函数用于以下目的:

  • 对数据进行一些计算
  • 修改单个数据项
  • 操作输出
  • 格式化日期和数字
  • 转换数据类型

 
Q88. MERGE 语句需要什么?

此语句允许有条件地更新或将数据插入到表中。如果行存在则执行 UPDATE,如果行不存在则执行 INSERT。

 
Q89. 递归存储过程是什么意思?

递归存储过程是指在达到某个边界条件之前自行调用的存储过程。这个递归函数或过程帮助程序员使用相同的代码集 n 次。

 
Q90. SQL 中的 CLAUSE 是什么?

SQL 子句通过向查询提供条件来帮助限制结果集。子句有助于从整个记录集中过滤行。
例如——WHERE、HAVING 子句。

 
Q91. “HAVING”和“WHERE”有什么区别?

HAVING 子句只能与 SELECT 语句一起使用。它通常用在 GROUP BY 子句中,每当不使用 GROUP BY 时,HAVING 的行为就像 WHERE 子句。Have Clause 仅与查询中的 GROUP BY 函数一起使用,而 WHERE Clause 应用于查询中的 GROUP BY 函数的一部分之前的每一行。

 
Q92. 列出可以执行动态 SQL 的方式?

以下是可以执行动态 SQL 的方式:

  • 写一个带参数的查询。
  • 使用 EXEC。
  • 使用 sp_executesql。

 
Q93. 不同级别的约束是什么?

约束是用于强制执行数据实体和一致性的列的表示。约束有两个级别,即:

  • 列级约束
  • 表级约束

 
Q94. 如何从两个表中获取公共记录?

您可以使用 INTERSECT 从两个表中获取公共记录。例如:
从学生中选择学生 ID。<strong>INTERSECT </strong> 从考试中选择 StudentID

 
Q95. 列出一些 SQL 中的大小写操作函数?

SQL中有3个case操作函数,分别是:

  • LOWER:此函数以小写形式返回字符串。它接受一个字符串作为参数并通过将其转换为小写来返回它。句法:

LOWER('字符串')
  • UPPER:此函数以大写形式返回字符串。它接受一个字符串作为参数并通过将其转换为大写来返回它。句法:

UPPER('字符串')
  • INITCAP:该函数返回第一个字母大写,其余字母小写的字符串。句法:

INITCAP('字符串')

Q96. SQL 中有哪些不同的集合运算符?
一些可用的集合运算符是 – Union、Intersect 或 Minus 运算符。

 
Q97. 什么是 ALIAS 命令?

SQL中的ALIAS 命令是可以赋予​​任何表或列的名称。此别名可以在 WHERE 子句中引用以标识特定表或列。
例如-
选择 emp.empID, dept.Result from emp emp,department as dept where emp.empID=dept.empID
在上面的例子中,emp 指的是employee 表的别名,dept 指的是department 表的别名。

 
Q98. 什么是聚合aggregate
 函数和标量scalar 函数?
聚合函数用于评估数学计算并返回单个值。这些计算是根据表中的列完成的。例如- max(),count() 是根据数字计算的。
标量函数根据输入值返回单个值。例如 – UCASE(), NOW() 是针对字符串计算的。

 
Q99. 如何从表中获取替代记录?

您可以获取备用记录,即奇数和偶数行号。例如 - 要显示偶数,请使用以下命令:
Select studentId from (Select rowno, studentId from student) where mod(rowno,2)=0
现在,要显示奇数:
Select studentId from (Select rowno, studentId from student) where mod(rowno,2)=1

 
Q100。命名查询中用于模式匹配的运算符?

LIKE 运算符用于模式匹配,它可以用作 -。

  1. % – 它匹配零个或多个字符。

例如-从学生中选择*,其中学生名像“a%”
_(下划线)——它正好匹配一个字符。例如- select * from student where studentname like 'abc_'

 
Q103
。 SQL 和 PL/SQL 之间的主要区别是什么?
SQL 是一种查询语言,允许您发出单个查询或执行单个插入/更新/删除,而 PL/SQL 是 Oracle 的“存储过程语言”SQL,它允许您编写完整的程序(循环、变量等)。完成选择/插入/更新/删除等多项操作。

 
Q104。什么是视图?

视图是一个虚拟表,它由表中包含的数据子集组成。由于不存在视图,因此存储空间较小。视图可以将一个或多个表的数据组合起来,这取决于关系。

 
Q105。视图有什么用?

视图是指基于表或其他视图的逻辑快照。使用它的原因如下:

  • 限制对数据的访问。
  • 使复杂的查询变得简单。
  • 确保数据独立。
  • 提供相同数据的不同视图。

 
Q106。什么是存储过程?

存储过程是一个由许多 SQL 语句组成的函数,用于访问数据库系统。多条 SQL 语句被合并到一个存储过程中,并在需要时随时随地执行它们,从而节省时间并避免一次又一次地编写代码。

 
Q107。列出存储过程的一些优点和缺点?

优点
存储过程可以用作模块化编程,这意味着创建一次,在需要时多次存储和调用。这支持更快的执行。它还可以减少网络流量并为数据提供更好的安全性。

缺点
存储过程的唯一缺点是它只能在数据库中执行,并且在数据库服务器中使用更多的内存。

 
Q108。列出所有类型的用户定义函数?

用户定义函数分为三种类型,分别是:

  • 标量函数
  • 内联表值函数
  • 多语句值函数

标量返回单位,变体定义返回子句。其他两种类型定义的函数返回表。

 
Q109. 你说的整理是什么意思?

整理被定义为一组规则,用于确定如何对数据进行排序和比较。使用定义正确字符序列的规则以及指定区分大小写、字符宽度等的选项对字符数据进行排序。

 
Q110。有哪些不同类型的校对敏感度?

以下是不同类型的整理敏感度:

  • 区分大小写:A 和 a 以及 B 和 b。
  • 假名敏感度:日语假名字符。
  • 宽度敏感度:单字节字符和双字节字符。
  • 口音敏感度。


 
Q111。什么是局部变量和全局变量?

局部变量:
这些变量可以使用或仅存在于函数内部。这些变量不会被任何其他函数使用或引用。

全局变量:
这些变量是可以在整个程序中访问的变量。无论何时调用该函数,都无法创建全局变量。

 
Q112。什么是 SQL 中的自动增量?

Autoincrement 关键字允许用户创建一个唯一的数字,以便在表中插入新记录时生成。每当在 SQL 中使用 PRIMARY KEY 时,通常都需要此关键字。
AUTO INCREMENT 关键字可以在 Oracle 中使用,IDENTITY 关键字可以在 SQL SERVER 中使用。

 
Q113。什么是数据仓库?

数据仓库是指数据的中央存储库,其中数据是从多个信息源组装而成的。这些数据经过整合、转换,可用于挖掘和在线处理。仓库数据还有一个称为数据集市的数据子集。