SQL 面试问题与答案

SQL 面试问题几乎在所有面试中都被问到,因为数据库操作在应用程序中非常常见。SQL 代表结构化查询语言,它是用于数据库通信和关系数据库管理的域特定的编程语言。SQL 包括用于数据库交互的标准命令,如 SELECT、INSERT、CREATE、DELETE、UPDATE、DROP 等。

SQL面试问题

SQL Interview Questions and Answers Listed below are various SQL interview questions and answers that reaffirms your knowledge about SQL and provide new insights and learning about the language. Go through these SQL interview questions to refresh your knowledge before any interview.

1、什么是 SQL?( )

SQL是一个域特定的编程语言,允许您以优化的方式和分类安排数据库管理系统中的数据查询和操纵。这可以通过在SQL中实施命令,允许您阅读,写入,选择和删除内容,甚至具有相同属性或表的列。SQL还提供了一个非常有效的方式来创建您的程序,网站或移动应用程序之间的动态通道到数据库。例如,通过在用户网站上输入您的登录信息,这些日志信息由SQL传输到数据库进行验证和用户限制。

数据库或数据库管理系统(DBMS)和关系数据库管理系统(DBMS)都被SQL用来存储数据和结构,但是,每种类型的数据库管理系统都比较适合不同的用途。两者之间的主要区别在于DBMS将您的信息保存为文件,而RDMS将您的信息保存为表格形式。同样,正如关键字 Relational所暗示的那样,RDMS允许不同的表与使用Primary Keys、Foreign Keys等进行关系,从而在表之间创建一个动态的层次结构链,这也为表提供有用的限制。DBMS通过层次或导航方式分类表格。这对于存储独立于对方的表中的数据有用,而你不想在填写或编辑表时更改其他表格。

SQL 以关系操作的结构为框架,它基于某些修改和改进,一个非常基本的 SQL 查询形式是:

1select A1, A2, ..., An
2
3from R1, R2, ..., Rm
4
5where P

在这里,A是属性,Rm是数据库中的关系,P是预兆或过滤器。 ### SQL 命令的不同类别是什么?

SQL 命令分为以下四个类别:

  • DML(数据操纵语言)提供数据操纵功能
  • DDL(数据定义语言)用于操纵数据库结构
  • TCL(交易控制语言)支持数据交易验证和错误处理
  • DCL(数据控制语言)是具有用户限制和数据访问权限的安全声明,以促进数据的安全
  1. SQL 用于什么?

SQL 是服务器侧程序员所使用的,因为它能够以非常快速和轻松的方式处理数据库中的大量条目,这为数据检索和操纵带来了巨大的改进。 为了解释这一点,SQL 提供了执行、检索、插入、更新、删除数据库中的条目的能力。 它还允许创建表、视图和数据库等结构,以提供独特的名称。

  • SELECT关键词用于从表格或视图中突出并逐行获取条目. 也可以附带"AS"关键词来提供别名. 要过滤 SELECT 语句, 可能包含哪些条款来提供过滤条件, 只选择符合条件的所希望的条目 。
  • INSERT 允许在数据库表格中添加或 ** 插入** 一行或多行 。 由 VALUES 关键词相伴,您可以添加有特定值的行. INSERT也可以与SELECT相伴以插入预选行.
  • CREATE是用于在SQL中创建元素的关键词. 它通常伴有要创建的关键词如CREATE DATABASE,CREATE TABAL,CREATE VIEW等
  • DELETE关键词用于删除数据库中的记录. 你应该小心使用它 以避免不必要的数据丢失。 您可以删除您不想删除的记录 。 使用 Where 条款指定您要删除的记录范围 。 () ( )* 更新关键词或更改现有记录中的现有数据。 请注意,记录必须存在。 ( ( )* DROP 关键字在数据库中丢入或删除一个表格 。 (_) (英语)
  1. SQL 和 P/L SQL 的主要差异是什么?

SQL 或结构化查询语言是一种用于与关系数据库进行通信的语言,它提供了操纵和创建数据库的方法,另一方面,PL/SQL 是 SQL 的一个方言,用于增强 SQL 的能力,它是由 Oracle Corporation 在 90 年代初开发的。

DDL 或数据定义语言是指直接影响数据库结构的 SQL 命令. DDL 是 SQL 命令分类的一类,其中也包括 DML (数据操纵语言), Transactions 和 Security. DDL 命令的一个特征是可以操纵索引、对象、表、视图、触发器等的陈述。

  1. CREATE – 用来创建一个表 CREATE TABLE tableName (name data_type);
  2. ALTER – 用来修改表中的条目或现有列 `` ALTER TABLE tableName [附加语法如ADD, DROP, MODIFY]
 13. DROP – 用来删除或放弃一个现有表及其条目,限制,触发器,索引和权限。 基本上删除表
 2``(`_MKBR1_)
 3
 4DML(Data Manipulation Language)是一组命令,这些命令被分类为允许用户在数据库中更改条目的能力,这可能是通过在表中输入、检索、删除或更新数据。
 5
 6* SELECT – used to highlight a row within a table and retrieve it.
 7   ```
 8   SELECT [columnName] FROM [tableName]
 9   ```
10* UPDATE – used to update entries from existing tables.
11   ```
12   UPDATE [tableName] SET [value]
13   ```
14* INSERT – used to insert entries into an existing table.
15   ```
16   INSERT INTO [tableName]
17   ```
18* DELETE – used to delete entries from an existing table
19   ```
20   DELETE FROM [tableName]
21   ```
22
23什么是交易控制语言(TCL)?
24
25TCL 是主要处理数据库交易和保存点的 SQL 命令类别. 这些关键字将开发者定义的 SQL 函数和逻辑应用到数据库结构和行为中。 这些 TCL 命令的例子是: COMMIT – 用于执行交易 ROLLBACK – 在任何出现的错误中,交易回归被这个关键字召唤。
26
27数据控制语言或 DCL 监督向用户发出访问和限制,包括 SQL 语句中所需的权利和权限。 例如 DCL 关键字是:GRANT – DCL 关键字为用户提供访问某些数据库。
28
29在数据库方面,表被称为有组织的条目的安排。它进一步分为包含表行不同字段的单元格。 一个字段属于代表一个单个条目的数据结构。 然后,它们进一步组织成记录。 它们实际上包含一个单元格的数据。 它们是数据的记忆分配的基本单位,可访问。
30
31密钥是RDMS的一个重要特征,它们基本上是连接一个表到另一个并促进快速数据检索和记录通过管理列索引的字段的字段。 不同类型的密钥是: 主要密钥 – 识别数据库表中的记录的独特密钥. 通过独特,这意味着它不应该是零,而且必须在表中是独特的。 候选密钥 – 一个独特的字段,用于识别单独的列或列组,而无需参考其他字段。 替代密钥 – 可用于替代主密钥,但被认为是次要的。 区别是,替代密钥可以有一个零值,只要列中有数据。 一个候选密钥类型也必须是独特的。 独特密钥 – 提供限制,以防止数据在
32
33**独特索引: ** 防止在独特索引的列中重复输入. 如果有主密钥,它们会自动生成。 ** 聚合索引:** 用于组织或编辑表中的排序,与关键值有关。 每个表只允许有一个聚合索引。 ** 非聚合索引:** 相反,非聚合索引只管理输入中的逻辑顺序。 它不管理排序,表可以有多个非聚合索引。
34
35SQL 即标准查询语言,是一种服务器编程语言,可为数据库字段和列提供交互性,而 MySQL 是数据库管理系统的一种类型,而不是实际的编程语言,更具体地说是 RDMS 或关系数据库管理系统。
36
37在 SQL 中,UNION 运算符结合了 SELECT 语句中突出的多个集合,该集合的限制是:(1)列号必须是相同的,(2)集中的数据类型必须是相同的,以及(3) SELECT 语句中突出的列的顺序必须是相同的。

SELECT C1, C2 FROM T1 UNION SELECT Cx, Cy FROM T2;

 1
 229. ### SQL 中的不同类型的合并是什么?
 3
 4连接关键字查询从多个表中输入,用来与不同的密钥一起找到这些条目,并且意识到字段之间的链接。
 5
 61. 内部连接:返回表
 7之间常见的行。2. 右连接:返回右侧表的行,包括常见的行。_MKBR1_)3. 左连接:返回左侧表的行,包括常见的行。
 8
 9正常化在数据库中安排现有表及其字段,导致最少的重复性。它被用来尽可能简化一个表,同时保持独特的字段。不正常化允许从数据库中的所有正常形式中获取字段。
10
11两个条款都接受基于检索字段的条件. 区别在于 WHERE 条款仅用于静态的非聚合列,而 HAVING 条款仅用于聚合列。

select order_id, SUM(sale_amount) as TotalSale from SalesData where quantity>1 group by order_id having SUM(sale_amount) > 100;

1
234. ### UNION、MINUS 和 INTERSECT 的区别是什么?
3
4UNION 关键字在 SQL 中用于组合多个 SELECT 查询,但从结果集中删除重复。INTERSECT 关键字仅用于使用 SELECT 查询在多个表之间检索常见行。MINUS 关键字基本上在两个 SELECT 查询之间抽取。结果是第一个查询和第二个查询之间的差异。
5
6MySQL: 使用限制条款,示例 `选择 * 从员工限制 10;` Oracle: 使用 ROWNUM 条款,示例 `SELECT * FROM Employee WHERE ROWNUM < 10;` SQL Server: 使用 TOP 条款,示例 `SELECT TOP 3 * FROM Employee;`39. ### 您如何在删除表中的一个元素导致在另一个表中删除元素的实例中保持数据库的完整性?
7
8这可以通过调用一个SQL触发器来实现,它会听取在表A中删除的任何元素,并从表B.40中删除相应的链接元素。

INSERT INTO TableB (columnOne, columnTwo, columnThree, ...)

SELECT columnOne, columnTwo, columnThree, ...

FROM TableA

WHERE added_condtion;

 1
 242. ### IN 和 EXISTS 条款的区别是什么?
 3
 4两者之间显而易见的区别在于 EXISTS 关键字在执行时比 IN 关键字相对较快,这是因为 IN 关键字必须搜索所有现有记录,而 EXISTS 关键字在找到匹配的记录时会自动停止。 此外,IN 关键字在 ResultSet 中运行,而 EXISTS 关键字在虚拟表中运行。
 5
 6ACID 缩写为 Atomicity, Consistency, Isolation, and Durability. 该属性主要负责数据库系统的过程完整性,这意味着用户发出的任何作为数据交易的数据都必须完全、准确地完成,并且具有耐用的属性。
 7
 8数据库触发器是自动执行的程序,以响应表或视图上的某些事件,例如插入/更新/删除记录。
 9
10Auto Increment 允许用户在列表中插入新记录时创建一个独特的数字。 AUTO INCREMENT 是 Oracle 的关键字,MySQL 中的 AUTO_INCREMENT 和 IDENTITY 关键字可以在 SQL SERVER 中用于自动增量。
11
12Collation 基本上是如何比较和排序字符的规则集,扩展到字符串。MSSQL 和 MySQL 中的 Collation 几乎是相同的,除了 UTF-8 等某些排序选项之外。
13
14该回归函数或程序有助于程序员使用相同的代码数次。 #### SQL 中的哪个查询操作器用于模式匹配?
15
16答案是 LIKE 操作员. LIKE 操作员用于模式匹配,并且可以用作 -.
17
18* % - 匹配零或多个字符
19* _( Underscore) - 匹配一个字符
20
2150. ### 什么是 Hibernate 及其与 SQL 的关系?
22
23[Hibernate](/community/tutorials/hibernate-tutorial)是Java中的对象关系绘制工具。Hibernate让我们写对象导向代码,并将其内部转换为原生SQL查询,以对付关系数据库执行。Hibernate使用自己的语言,如SQL,称之为Hibernate Query Language(HQL)。区别在于HQL能够查询Hibernate的实体对象。Hibernate还具有面向对象的查询语言,称之为Criteria Query。它对主要在前端应用中使用对象的开发者来说非常有益和有益,Criteria Query可以在安全性和限制访问等SQL添加功能中服务到这些对象。####我们如何解决SQL错误:ORA-00904:无
24
25此错误通常会出现在 Oracle 数据库中呼叫列名时的语法错误中,请注意错误代码中的 ORA 标识符。 请确保您在正确的列名称中输入。
26
27SQL Profiler 是一个图形用户界面,允许数据库开发人员监控和跟踪他们的数据库引擎活动。它提供了每个发生的事件的活动日志,并提供功能故障和差异的分析。 它基本上是 SQL 中的诊断功能,可以检测性能问题,并提供一个更为通用的方式来查看您的跟踪文件中的哪个部分在您的 SQL 交易中造成堵塞。 #### 我们如何将 SQL 数据库连接到现有的 Android 应用程序?
28
29它将需要一个JDBC(Java Database Connectivity)驱动程序来链接这两个。
30
31参考: [维基百科](https://en.wikipedia.org/wiki/SQL)
Published At
Categories with 技术
comments powered by Disqus