SQL是和数据库说话:零基础掌握查增改删

SQL是和数据库说话:零基础掌握查增改删

上期我们提到,数据库本质上是一堆表格,数据一行一行地存储。那么问题来了:我们该如何从这些表格中取出数据?如何新增一条用户记录?又如何修改订单的状态?

数据库拥有自己的“对话语言”,叫做 SQL(Structured Query Language)。你可以念作 “S-Q-L” 或者 “Sequel”。这门语言已经存在了几十年,基本上所有的关系型数据库(如 MySQL、PostgreSQL、SQLite 等)都支持它,且写法大同小异。

SQL as Database Language

SQL 最基础的操作只有四个:查、增、改、删,对应的英文关键字分别是 SELECTINSERTUPDATEDELETE

CRUD Operations Mapping

SQL 四大核心操作

1. 查数据 (SELECT)

查询数据使用 SELECT 语句。

  • 查询所有数据

    SELECT * FROM users;
    

    意思是把 users 这张表里的所有数据全部返回。

  • 带条件查询: 加上 WHERE 子句可以指定条件。例如,只获取 ID 为 1 的那条记录:

    SELECT * FROM users WHERE id = 1;
    

2. 增数据 (INSERT)

新增数据使用 INSERT 语句。

  • 插入新记录
    INSERT INTO users VALUES (值1, 值2, ...);
    
    括号内依次填入各字段对应的值,执行后表中就会多出一行记录。

3. 改数据 (UPDATE)

修改数据使用 UPDATE 语句。

  • 更新指定记录
    UPDATE users SET name = '张三' WHERE id = 1;
    
    这条语句会将 ID 为 1 的用户名字修改为“张三”。

4. 删数据 (DELETE)

删除数据使用 DELETE 语句。

  • 删除指定记录
    DELETE FROM users WHERE id = 1;
    
    这条语句会删除 ID 为 1 的那条记录。

新手最容易犯的两个致命错误

虽然 SQL 语法简单,但新手在实际操作中极易犯错,以下两个错误往往伴随着“血泪教训”。

错误一:UPDATE 和 DELETE 忘记写 WHERE 条件

这是最危险的操作。如果你在执行 UPDATEDELETE 时遗漏了 WHERE 子句,数据库将默认对整张表的所有数据进行修改或删除。

  • 后果:数据全被改错,或者整张表数据被清空,且通常没有“后悔药”可吃。
  • 避坑建议:养成一个习惯,在执行 UPDATEDELETE 之前,先用 SELECT 加上完全相同WHERE 条件查询一遍。确认查询结果确实是你要操作的那几条数据后,再执行修改或删除操作。

Danger of Missing WHERE Clause

错误二:SELECT * 一次性拉取全量数据

当表中有几十万甚至上百万条记录时,使用 SELECT * 不加任何限制,会将所有数据全部拉取到内存中。

  • 后果:网络传输量巨大,数据库压力剧增,严重时直接导致服务拖垮或崩溃。
  • 避坑建议
    1. 尽量加上 WHERE 条件缩小查询范围。
    2. 使用 LIMIT 限制返回数量。例如 LIMIT 20 只取前 20 条,这在分页展示或调试时非常有用。

Optimizing SELECT with LIMIT

AI 时代下的 SQL 学习必要性

现在很多人使用 AI 辅助写代码,SQL 语句也常由 AI 生成。但这并不意味着你可以完全不懂 SQL。

如果你不理解 SQL 的基本含义,当 AI 生成了一条没有 WHERE 条件的 UPDATE 语句时,你可能无法察觉其中的危险,直接运行后导致数据灾难。SQL 本身不难,四个核心操作半小时就能搞懂,难的是养成“执行之前多想一步”的安全习惯。

你写过 SQL 吗?遇到过什么坑?欢迎在评论区分享你的经验。