你平时最常写的 SQL,大致就是四类:
新增 INSERT
查询 SELECT
修改 UPDATE
删除 DELETE先看新增:
INSERT INTO citizens (
household_id, national_id, full_name, gender, birth_date
) VALUES (
1, '310101199905080022', '周宁', 'F', '1999-05-08'
);查某一户下的所有在册人口:
SELECT citizen_id, full_name, birth_date
FROM citizens
WHERE household_id = 1
AND status = 'active'
ORDER BY birth_date;修改状态:
UPDATE citizens
SET status = 'moved'
WHERE citizen_id = 2;删除一条误录数据:
DELETE FROM citizens
WHERE citizen_id = 999999;除了增删改查,还要会几种“柜台统计”:
1. 分组统计
SELECT household_id, COUNT(*) AS citizen_count
FROM citizens
WHERE status = 'active'
GROUP BY household_id;2. 过滤分组结果
SELECT household_id, COUNT(*) AS citizen_count
FROM citizens
WHERE status = 'active'
GROUP BY household_id
HAVING COUNT(*) >= 3;3. 取前几条
SELECT citizen_id, full_name, created_at
FROM citizens
ORDER BY created_at DESC
LIMIT 10;4. 看表结构
DESCRIBE citizens;
SHOW INDEX FROM citizens;
SHOW CREATE TABLE citizens;一个很实用的认知是:
SQL 不是“命令式逐步操作”,而是“声明你要什么结果”。 你说“我要哪类记录”,MySQL 再决定怎么去账册里翻。