0Pricing
SQL Interview Prep · 课时

什么是 SQL,以及面试官为什么会问它

定义 SQL,区分 DDL、DML、DCL 和 TCL,并了解 SQL 与关系数据库引擎的区别

什么是 SQL,以及面试官为什么会问它 是 CoddyKit 上的免费 SQL Interview Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 SQL Interview Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 SQL Interview Prep 课程共包含 4 节课。

为什么这个问题是面试的开场题

几乎每场 SQL 面试都会以“什么是 SQL?”开场。这是一个筛选题:优秀的回答会说明 SQL 是什么、它处理什么,以及它有哪些语句类型。现在请您准备好自己的回答。

SQL 的本质

SQL 是一种用于关系型数据库的声明式语言:您描述想要的结果,由引擎决定如何实现。它处理的是由行和列组成的表。

SELECT name, salary
FROM employees
WHERE department = 'Engineering';

SQL 不是数据库引擎

一个常见误区是:SQL 是一种语言;MySQL、Postgres 和 Oracle 则是实现它的引擎。每种引擎都会在标准之上加入自己的方言。

四类语句

面试官很喜欢让您对 SQL 语句进行分类。语句分为四组:用于结构的 DDL、用于数据的 DML、用于权限的 DCL,以及用于事务的 TCL。

DDL:定义结构

DDL 用于构建数据库结构:CREATE、ALTER、DROP、TRUNCATE。有一点需要特别说明:大多数 DDL 会自动提交,因此通常无法回滚。

CREATE TABLE employees (
  id INTEGER PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  department VARCHAR(50),
  salary NUMERIC(10,2)
);

DML:操作数据

DML 用于修改表中的行:INSERT、UPDATE、DELETE 和 SELECT。稳妥的回答是:“SELECT 是只读的 DML,有时会单独归为 DQL。”

UPDATE employees
SET salary = salary * 1.10
WHERE department = 'Engineering';

DCL:控制访问权限

DCL 控制谁可以执行哪些操作,只有两个命令:GRANT 用于授予权限,REVOKE 用于收回权限。这说明您了解数据库是一个多用户系统。

GRANT SELECT, INSERT ON employees TO analyst_role;
REVOKE INSERT ON employees FROM analyst_role;

TCL:控制事务

TCL 将多个变更组织成要么全部成功、要么全部不生效的事务:BEGIN、COMMIT、ROLLBACK、SAVEPOINT。关键概念是原子性:要么全部执行,要么全部不执行。

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

声明式与过程式

为什么说 SQL 是声明式语言?因为您只需说明想要的结果,再由查询优化器决定如何得到它。SQL 还是基于集合的语言:它可以一次处理整组行。

示例:为语句分类

面试官经常会给您一些语句,让您判断它们的类别。下面的代码展示了四类语句的实际用法,还包含一个经典误区:TRUNCATE 会删除数据,但它属于 DDL。

用 30 秒作答

请准备好一段简洁的 30 秒回答,以便在压力下流畅作答。下面框出的定义涵盖了开场问题以及几个可能的追问,您可以一口气说完。

快速检查

请检验您对语句类别的掌握情况。

回顾

回顾:SQL 是一种用于关系型数据的声明式、基于集合的语言。它分为 DDL、DML、DCL、TCL。请注意这些易错点:TRUNCATE 属于 DDL,SELECT 是只读的 DML。

常见问题解答

「什么是 SQL,以及面试官为什么会问它」课时是免费的吗?

是的 — 「什么是 SQL,以及面试官为什么会问它」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 SQL Interview Prep 课程的其余内容,请升级到 CoddyKit PRO。 SQL Interview Prep 课程共包含 4 节课。

「什么是 SQL,以及面试官为什么会问它」这节课中我会学到什么?

定义 SQL,区分 DDL、DML、DCL 和 TCL,并了解 SQL 与关系数据库引擎的区别 你通过在浏览器中直接运行的动手代码来练习 SQL Interview Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 SQL Interview Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 SQL Interview Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「什么是 SQL,以及面试官为什么会问它」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 SQL Interview Prep 课中编写并运行代码吗?

能。每节 SQL Interview Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是 SQL,以及面试官为什么会问它
  2. 逻辑查询执行顺序
  3. 主键、外键与约束
  4. 在压力下阅读架构
← 返回 SQL Interview Prep