SQL题介绍
该博客包含 SQL 的各种主题及其解释和答案。有 12 个在应试及以下级别的面试中经常被问到的理论问题,有 15 个与 SQL 问题相关的 MCQ 用于练习。
1.什么是数据库?
数据库是一个有助于存储数据、检索数据并有助于操作数据的系统。数据库有各种类型的小型、中型和大型。使用通常很复杂的设计和建模方法制作各种数据库。数据库通常由数据库管理系统 (DBMS) 控制。
最常见的数据库类型是表格形式的行和列的形式,例如excel数据。有多种类型的数据库:
- 关系数据库
- 面向对象的
数据库 - 分布式
数据库 - 数据
仓库 - NoSQL
数据库 - 图
数据库
2. 什么是 DBMS?
DBMS 代表数据库管理系统。DBMS 的职责是存储、创建、更新和管理数据库。DBMS 确保数据以正确的格式组织并且没有漏洞,并且开发人员可以轻松访问它,并且还维护数据库和应用程序(产品)的最终用户之间的接口。
3. 什么是关系型数据库?它与 DBMS 有何不同?
| 关系型数据库管理系统 | 数据库管理系统 |
| RDBMS 代表关系数据库管理系统。 | DBMS 代表数据库管理系统。 |
| 它以表格格式将数据存储在行和列中。 | 它以文件格式存储数据。 |
| 它旨在处理大量数据。 | 它旨在处理少量数据。 |
| 多个数据元素可以一起访问 | 可以单独访问数据元素。 |
| RDBMS 支持多个用户。 | DBMS 不支持多用户。 |
| 支持分布式数据库。 | 不支持分布式数据库。 |
| 在 RDBMS 中,标准化是无法实现的。 | 在 DBMS 中,标准化是可以实现的。 |
4. SQL有哪些应用?
SQL的主要应用包括:
- 由开发人员和数据库管理员编写数据集成脚本。
- 定期设置和运行分析查询,并根据原始数据制作新数据集。
- 检索原始数据库中的信息子集以进行分析和可视化
- 最常见的用途是在数据库中添加、更新和删除数据的行和列
5. SQL 与 DBMS 的区别?
| SQL | 数据库管理系统 |
| SQL 代表结构化查询语言。 | DBMS 代表数据库管理系统。 |
| 它是一种查询语言。 | 它是一个数据库。 |
| SQL 是为管理数据库而设计的 | DBMS 旨在为数据库提供安全性。 |
| 它允许用户创建数据视图。 | 它包含自动备份和数据库恢复。 |
| SQL 由各种类型的语言组成,例如 DDL 和 DML。 | 它降低了数据之间关系的复杂性。 |
| 例如:。SQL、SQL 服务器。 | 例如:、MySQL、Oracle |
6、什么是SQL中的子查询?
SQL 中的子查询是另一个查询中的查询。我们也可以将其称为嵌套查询或内部查询。大多数子查询用于增强主查询要查询的数据。
7、SQL中SELECT语句的作用是什么?
SELECT 命令用于根据查询显示来自数据库的行。SELECT 命令是一种数据操作语言 (DML) 命令
例如:。我们有一个学校的学生数据库,我们有多个列,其中一些是 StuID 和 StuName,查询是显示学生姓名。
查询:SELECT * from student;
8. SQL 的子集是什么?
SQL 有 4 个子集:
- 数据定义语言 (DDL): DDL 由可用于定义数据库模式的 SQL 命令组成。DDL 处理数据库的描述、更新和删除数据库,其中包含 CREATE、ALTER、TRUNCATE 和 COMMENT 等命令。
- 数据操作语言(DML): DML 用于操作数据库中的现有数据。DML 命令是 SELECT、UPDATE、INSERT 等。
- 数据控制语言(DCL): DCL 控制对存储在数据库中的数据的访问,DCL 命令是 GRANT 和 REVOKE。
- 事务控制语言(TCL): TCL用于处理数据库中的事务操作。TCL 命令有 COMMIT、ROLLBACK、SET TRANSACTION、SAVEPOINT 等。

9. 解释 SQL 中的任意 2 个子集及其定义
SQL中有5个子集:
1.数据定义语言
DDL 代表数据定义语言,其中命令用于定义数据库模式。DDL 主要用于向开发人员描述数据库模式以及创建和修改数据库的整体结构。
DDL 命令的示例如下:
- CREATE – 使用 create 命令,我们可以创建数据库或其对象,例如表、索引、函数和视图。
- DROP – 使用 drop 命令,我们可以从数据库中删除对象。
- ALTER—— 使用alter命令我们可以改变数据库的结构。
- TRUNCATE – 使用 truncate 命令,我们可以从表中删除所有记录,包括删除为记录分配的所有空间。
- COMMENT – 使用注释命令,我们可以将注释添加到数据字典中。
- 重命名——使用重命名命令,我们可以重命名数据库中存在的对象。
2.数据操作语言
DML 代表数据操作语言,其中命令用于操作数据库中的数据。
DML 命令示例如下:
- SELECT – 使用 select 命令从数据库中检索数据。
- INSERT – 使用 insert 命令将数据插入表中。
- UPDATE – 使用 update 命令更新表中的现有数据。
- DELETE – 使用 delete 命令从数据库表中删除记录。
10. 什么是 SQL 中的 JOINT 并解释任意 2 种类型?
JOIN 子句用于根据两个表中的同一列组合来自多个表的行。这两个表已合并,我们将从中检索新数据。
内连接: 大多数常见的 SQL 类型是内连接。当条件满足时,Inner Join 将返回多个表中的所有行。
语法内连接:
SELECT * FROM Table_A JOIN Table_B; SELECT * FROM Table_A INNER JOIN Table_B;
Left Join: 在 SQL 的 Left Join 中,只返回左表中的行以及满足条件的左表和右表的并集。
语法左连接:
SELECT * FROM Table_A A LEFT JOIN Table_B B ON A.col = B.col;
右连接: 在 SQL 的右连接中,将返回右表中的所有行,但仅返回左表中满足连接条件的匹配行。
语法正确加入:
SELECT * FROM Table_A A RIGHT JOIN Table_B B ON A.col = B.col;
完全连接: 在 SQL 的完全连接中,当任何一个表中存在匹配时,都会返回所有记录。因此,它返回左侧表中的所有行和右侧表中的所有行。
语法完全连接:
SELECT * FROM Table_A A FULL JOIN Table_B B ON A.col = B.col;
有很多类型的连接,您可以在下面参考。下面是 SQL 中各种类型的 JOINT 的备忘单。

11. 什么是 SQL 中的主键?
主键是唯一标识表中每条记录的字段或字段组合。主键是唯一键,因为表只能有一个主键,并且不能为空。 例如, 我们有大学或学院的学生数据,其中列是卷号和姓名,我们希望显示具有卷号的唯一孩子。在这里,ROLL Number 可以被视为学生的主键。

我们可以在学生表中定义一个主键,如下所示:
CREATE TABLE Student ( roll_number INT PRIMARY KEY, name VARCHAR(45), );
12.什么是外键?
外键也称为引用键。我们使用外键将数据库中的一个或多个表链接在一起。
外键通常被指定为与另一个表的主键相关的键,简单来说就是一个表的外键字段引用另一个表的主键字段。它保持参照完整性。ACID 属性由主键-外键关系维护。外键还可以防止破坏数据库中子表和父表之间的链接的操作。
例如,我们有大学或学院的学生数据,其中列是卷号和姓名,我们希望显示具有卷号的唯一孩子。在这里,ROLL Number 可以被视为学生的主键。
我们可以在学生表中定义一个外键,如下所示:
CREATE TABLE Students ( roll_number INT NOT NULL name VARCHAR(255) LibraryID INT PRIMARY KEY (roll_number) FOREIGN KEY (Library_ID) REFERENCES Library(LibraryID) );
SQL 问题 (MCQ)
让我们从理论和实践上探讨一些关于 SQL 的问题。MCQ 形式的 SQL 有 15 道题。
1. 以下哪些是一些常用的RDBMS?
A. SQL
B. Oracle
C. HeidiSQL
D. 以上所有
答案:D(以上所有)
2、SQL的完整形式是什么?
A. Structured Query Language
B. Structured Query List
C. Sample Query Language
D. 这些都不是。
答案:A(结构化查询语言)
3.我们用什么命令在SQL中创建新表?
A. BUILD TABLEB. CREATE TABLE
C. INSERT TABLE
D. SELECT TABLE
答案:B(创建表)
说明: CREATE TABLE 函数用于在 SQL 数据库中创建表。
4. 以下哪个不是有效的 SQL 类型?
A. FLOAT
B. NUMERIC
C. DECIMAL
D. CHARACTER
答案:C(十进制)
说明: DECIMAL 不是有效的 SQL 类型,因为在 SQL 中它是数字类型。
5. 以下哪个命令会删除表中的所有行?
A. DELETEB. TRUNCATE
C. DROP
D. ALTER
答案:B(截断)
说明: TRUNCATE 命令用于删除所有行而不从表中删除单个行。TRUNCATE 语句类似于 SQL 中的 DELETE 语句,只是在查询中没有 WHERE 子句。
6. 从选项中哪个命令是数据控制语言的一部分?
A. RevokeB. Grant
C. Both
D. None of this
答案:C(两者)
说明: REVOKE 和 GRANT 是数据控制语言的命令。
7. 下列哪个 SQL 函数比较 2 个字符串的相似度并将结果作为 4 个字符的代码返回?
A. DIFFERENCEB. SOUNDEX
C. COCNAT
D. FIND
答案:B(声音)
8.主键可以不?
A.视情况而定
B. Not Null
C. Null 和 Not Null
D. Null
答案:D(空)
说明: 主键是唯一标识表中每条记录的字段或字段组合。主键是唯一键,因为表只能有一个主键,并且不能为空。
9. 一张表可以有多少个主键?
A. 只有 1
B. 只有 2
C. 取决于列
D、视情况而定
答案:A(只有 1 个)
说明: 主键是唯一标识表中每条记录的字段或字段组合。主键是唯一键,因为表只能有一个主键,并且不能为空。
10. 什么是关系行?
A. TupleB. Degree
C. Entity
D. 这些都不是
答案:A(元组)
解释:行和列的集合称为表,而表在 SQL 中称为关系,因此关系中的行称为元组。
11. 以下哪项是 DDL 的完整形式?
A. 动态数据语言
B. 数据派生语言
C. 数据定义语言
D. 详细的数据语言
答案:C(数据定义语言)
12. 以下哪些是 TCL 命令?
A. COMMIT and ROLLBACK
B. UPDATE and INSERT
C. SELECT and INSERT
D. GRANT and COMMIT
答案:A(COMMI 和 ROLLBACK)
13. 在命令中如果我们 在SQL ORDER BY 子句后没有指定ASC 或DESC,结果按什么顺序显示?
A. DESC
B. ASC
C. NOT DEFINED FORMAT
答案:B (ASC)
说明: 在命令中,如果我们没有在 SQL ORDER BY 子句后指定 ASC 或 DESC,则结果以哪个顺序显示。
14. 哪个数据操作命令用于组合一个或多个表中的行?
A. JOINB. CONCATE
C. PRODUCT
D. MULTIPLY
答案:A(JOIN)
15. 以下哪个命令不在 SQL 中
A. ALTERB. UNIONC. CHECK
D. B and C
答案:B(UNION)
关于 SQL 问题的结论
该博客包含许多与该主题相关的问题,例如数据库、SQL、不同类型的联合等等。每当你进行面试时,总是以系统的方式给出你的答案,例如首先给出定义,然后用一个有例子的情况进行解释。最后,用 SQL 问题的语法给出答案,这样面试官就知道你对给定的主题有广泛而清晰的知识。
原文标题:Guide for Interview Questions for SQL
原文作者:Kruti Patel
原文链接:https://www.analyticsvidhya.com/blog/2022/05/guide-for-interview-questions-for-sql/




