数据库:程序员的"仓库"
程序跑起来会产生大量数据:用户、分数、订单、消息。数据放文件里不好查,数据库就是专门管数据的"仓库"——它用表格存数据,用 SQL 语言读写。
SQL(结构化查询语言)是数据库的世界通用语言,学会它,孩子就能理解"登录系统""排行榜""购物车"背后的数据逻辑。
不会 SQL,就只能看见程序的表面;会 SQL,才能看见程序的内部。
- 表数据库的基本容器。
- CREATE建表与字段类型。
- SELECT查询数据。
- WHERE条件过滤。
建表:CREATE TABLE
先用 CREATE TABLE 建一张"玩家表":每一列定义一种字段和类型。INT 整数、VARCHAR 字符串、TEXT 长文本。
CREATE TABLE players (
id INT PRIMARY KEY,
name VARCHAR(50),
score INT
);
id 用 PRIMARY KEY(主键)标记,保证每行唯一——就像每个玩家的唯一编号。
插入:INSERT INTO
往表里加一行记录用 INSERT INTO,按列名给值。
INSERT INTO players (id, name, score)
VALUES (1, 'XiaoMing', 98);
加数据就像往表格里填一行,写错列名或类型不匹配都会报错——这就是数据库在保护数据的"格式"。
查询:SELECT 与 WHERE
查询是 SQL 用得最多的操作。SELECT 选列,WHERE 过滤行。
SELECT name, score FROM players
WHERE score > 90;
这条语句回答:"找出所有分数大于 90 的玩家名字和分数"。WHERE 后面可以跟 =、>、<、LIKE 等条件。
排序与限量:ORDER BY 与 LIMIT
ORDER BY 排序,LIMIT 限量——这俩组合就是"排行榜":按分数从高到低取前 10 名。
SELECT name, score FROM players
ORDER BY score DESC
LIMIT 10;
DESC 表示从高到低,ASC 表示从低到高。记住这个组合,就能做出任何排行榜。
修改与删除:UPDATE 与 DELETE
UPDATE 改数据,DELETE 删数据。危险的是它们可以一次影响很多行,所以永远要带 WHERE 指明"改/删谁"。
补充一句:UPDATE 和 DELETE 前,最好先用 SELECT 查一下同样的 WHERE 条件会命中哪些行,确认无误再动手。这个"先查后改"的习惯,专业数据库管理员每天都在用,它能避免绝大多数误操作。
UPDATE players SET score = 100 WHERE id = 1;
DELETE FROM players WHERE id = 2;
一条铁律:UPDATE 和 DELETE 不带 WHERE,等于全表遭殃。这个教训越早记住越好。另外注意,DELETE 删掉的行默认无法直接找回,所以删数据之前,最好先想清楚是否真的需要删除,必要时先用备份或软删除(加一个 deleted 标记列)代替物理删除。
综合练习:游戏排行榜
把今天学的串成一个小练习:
- 建一张 players 表(id、name、score);
- 插入 5 个玩家的成绩;
- 查出分数大于 80 的玩家;
- 按分数排序取前三名;
- 把某人的分数更新,再看看排行榜变化。
这个练习做完,SQL 的基本功就齐了。下一步可以学 JOIN 联表查询、COUNT 统计,或者用 Python 连数据库(配合我们频道的"Python 数据"文章)。
- SELECT查数据、WHERE 过滤。
- ORDER BY+LIMIT做排行榜。
- UPDATE/DELETE必带 WHERE。
- 练习排行榜串起全部。