目录
1. 把 4 大类串成一个故事
2. 一个简单的记忆表(面试秒答用)
3. 结合 SQLite 快速加深记忆的小练习
4. 最后一个超级短的记忆口诀
1. 把 4 大类串成一个故事
一张表的一生:建 → 改行 → 查 → 保证安全
-
DDL – 建结构(表长啥样)
-
关键词:结构 / 表
-
常见:
CREATE / ALTER / DROP -
口诀:“D-定义(Definition)= 定结构”
-
在 SQLite 里:
CREATE TABLE user ( id INTEGER PRIMARY KEY, name TEXT ); ALTER TABLE user ADD COLUMN age INTEGER; DROP TABLE user;
-
-
DML – 改数据行(表里面的行)
-
关键词:数据 / 行
-
常见:
INSERT / UPDATE / DELETE -
口诀:“M-操作(Manipulation)= 动数据”
-
在 SQLite 里:
INSERT INTO user (name, age) VALUES ('Tom', 18); UPDATE user SET age = 20 WHERE name = 'Tom'; DELETE FROM user WHERE name = 'Tom';
-
-
DQL – 查数据(查结果集)
-
关键词:查询 / 结果
-
核心:
SELECT -
口诀:“Q-查询(Query)= 查数据”
-
面试必答:
SELECT属于 DQL -
在 SQLite 里:
SELECT * FROM user WHERE age > 18;
-
-
TCL – 控制事务(要不要生效)
-
关键词:事务 / 成功失败一起算
-
常见:
BEGIN / ***MIT / ROLLBACK -
口诀:“T-事务(Transaction)= 批处理的生死开关”
-
在 SQLite 里:
BEGIN; INSERT INTO user (name, age) VALUES ('A', 20); INSERT INTO user (name, age) VALUES ('B', 25); ***MIT; -- 出问题就 ROLLBACK;
-
2. 一个简单的记忆表(面试秒答用)
你可以在脑子里背下面这张“极简表”:
| 类别 | 全称 | 关键字举例 | 一句话理解 |
|---|---|---|---|
| DDL | Data Definition Language | CREATE / ALTER / DROP | 定义结构(表、索引) |
| DML | Data Manipulation Language | INSERT / UPDATE / DELETE | 操作行(增删改) |
| DQL | Data Query Language | SELECT | 查数据(查询结果) |
| TCL | Transaction Control Language | BEGIN / ***MIT / ROLLBACK | 控制事务(成或败) |
面试话术模版:
SQL 按功能一般分四类:
DDL 定义数据结构,比如 CREATE / ALTER / DROP;
DML 操作数据行,比如 INSERT / UPDATE / DELETE;
DQL 负责查询,核心是 SELECT;
TCL 控制事务,比如 BEGIN / ***MIT / ROLLBACK。
其中 SELECT 属于 DQL。
背熟这一段,原封不动说出来就行。
3. 结合 SQLite 快速加深记忆的小练习
建议你开一个 SQLite 的练习库,连做一组“流程题”,一遍过就把 4 类全用了:
-- 1. DDL:新建表
CREATE TABLE a***ount (
id INTEGER PRIMARY KEY,
name TEXT,
balance REAL
);
-- 2. DML:插入几行
INSERT INTO a***ount (name, balance) VALUES ('Alice', 100.0);
INSERT INTO a***ount (name, balance) VALUES ('Bob', 50.0);
-- 3. DQL:查一下
SELECT * FROM a***ount;
-- 4. TCL + DML:做一次转账
BEGIN;
UPDATE a***ount SET balance = balance - 20 WHERE name = 'Alice';
UPDATE a***ount SET balance = balance + 20 WHERE name = 'Bob';
***MIT;
SELECT * FROM a***ount;
然后自己在脑子里问:
-
创建表是啥类?→ DDL
-
插入 / 更新是啥类?→ DML
-
SELECT 呢?→ DQL
-
BEGIN/***MIT 是啥?→ TCL
多做 2–3 次这样的“全流程练习”,这四个分类基本就牢固 + 能说人话。
4. 最后一个超级短的记忆口诀
先建表(DDL),再改行(DML),再来查(DQL),最后保(TCL)。
-
建表 / 改结构 → DDL
-
增删改行 → DML
-
查 → DQL(SELECT)
-
保不保这批操作 → TCL(事务)
先直接回答你这几个点,我们一句一句来拆。
5. ALTER TABLE user ADD COLUMN age INTEGER; 是啥意思?
直白版解释:
把已有的
user表,改造一下,多加一列age,类型是整数。
具体发生了什么:
-
ALTER TABLE user:对名字叫user的表“动手术” -
ADD COLUMN age INTEGER:给这张表新增一列:-
列名:
age -
类型:
INTEGER(整数)
-
对已有数据的影响:
-
表里以前已经存在的每一行都会多出一个
age列 -
但这个列的值一开始是
NULL(相当于“没有填年龄”)
你之后可以再用:
UPDATE user SET age = 18 WHERE name = 'Tom';
来给某一行补上 age。
6. 事务,通俗一点怎么理解?
一句话版本:
事务 = 一组要么全部成功,要么全部当作没发生的操作。
更生活化一点:
-
想象“发红包转账”:从你这里扣 100,给朋友加 100
-
这两个操作必须同时成功,否则就乱套了:
-
只扣了你 100,没给他加 100 → 你亏
-
只给他加了 100,没扣你 → 银行亏
-
所以数据库会说:
“我把这几条 SQL 当成一个整体来看:
-
中间都顺利 → 我一次性确认(提交)
-
中间出错 → 当作都没干过(回滚)”
这个“整体”,就是事务(transaction)。
记忆关键词:
一组操作,要么全成,要么全不成。
7. BEGIN / ***MIT / ROLLBACK 言简意赅解释
这三个就是控制事务的三个按钮:
7.1 BEGIN —— 开始一笔事务
-
含义:“从现在起,这几条语句算一伙的。”
-
后面跟着的
INSERT / UPDATE / DELETE都在同一笔事务里。
SQL 示例:
BEGIN; -- 开始记账(还没真正写死到数据库)
UPDATE a***ount SET balance = balance - 100 WHERE name = 'Alice';
UPDATE a***ount SET balance = balance + 100 WHERE name = 'Bob';
-- 这里还只是“暂存”,没最终生效
7.2 ***MIT —— 提交(确认生效)
-
含义:“刚才这整笔操作,我确认没问题,全部生效。”
-
一旦
***MIT;成功执行,刚才的更新就写死在数据库里了。
接上面的例子:
***MIT; -- OK,这笔转账正式生效
7.3 ROLLBACK —— 回滚(撤销刚才这笔)
-
含义:“刚才这整笔操作,当作没发生。”
-
只要事务还没提交,一句
ROLLBACK;就能把这期间的修改全部撤回。
例如:
BEGIN;
UPDATE a***ount SET balance = balance - 100 WHERE name = 'Alice';
UPDATE a***ount SET balance = balance + 100 WHERE name = 'Bob';
-- 发现不对,比如中间检查出余额不足
ROLLBACK; -- 撤销这两条 UPDATE,好像从没执行过
8. 帮你串一下(面试/记忆用)
-
事务(Transaction):
一组要么全成功、要么全撤销的操作。 -
BEGIN:
我现在开始做一笔“成败一体”的事了。 -
***MIT:
一切正常,确认生效。 -
ROLLBACK:
出问题了,全部撤回,当作没干过。 -
ALTER TABLE user ADD COLUMN age INTEGER;:
给user这张表多加一个整型的age列,旧数据这一列初始都是NULL。