一、SQL架构大白话
SQL就像仓库管理员,负责管理数据仓库里的货物(数据),主要干4件事:
- DDL(数据定义语言)
📌 作用:建仓库、修货架、拆仓库
✂️ 类比:
CREATE TABLE
= 盖新仓库ALTER TABLE
= 给仓库加个新货架DROP TABLE
= 炸掉整个仓库
- DML(数据操作语言)
📌 作用:往货架上搬货/换货/扔货
🖐️ 类比:
INSERT
= 把新玩具放进货架UPDATE
= 把过期食品换成新鲜的DELETE
= 把破损商品扔垃圾桶
- DQL(数据查询语言)
📌 作用:查货架上的东西
🔍 核心:
SELECT
就像手电筒,照哪里看哪里SELECT 商品名 FROM 货架 WHERE 生产日期 > '2023-01-01';
- DCL(数据控制语言)
📌 作用:管仓库钥匙
🔑 示例:
GRANT
= 给小王配仓库钥匙REVOKE
= 把老李的钥匙没收
二、SELECT语句超简图解
flowchart LR
A[SELECT 拿什么] --> B[FROM 从哪拿]
B --> C[WHERE 条件]
C --> D[GROUP BY 分组]
D --> E[HAVING 组条件]
E --> F[ORDER BY 排序]
F --> G[LIMIT 拿多少]
生活案例:在冰箱找饮料
SELECT 可乐, 雪碧 -- 只要这两种
FROM 冰箱 -- 找的地方
WHERE 温度 < 10 -- 冰镇的
ORDER BY 生产日期 DESC -- 拿最新的
LIMIT 2; -- 最多拿两瓶
三、必知必会的5个语法
- WHERE条件过滤
=
等于>
大于LIKE '%牛奶%'
模糊找(含”牛奶”的文字)BETWEEN 10 AND 20
区间找
- JOIN连接表
- 就像拼积木,把多个表的列拼在一起
SELECT 学生.名字, 成绩.分数 FROM 学生 JOIN 成绩 ON 学生.学号 = 成绩.学号;
- 就像拼积木,把多个表的列拼在一起
- GROUP BY分组统计
-- 统计每个班的平均分 SELECT 班级, AVG(分数) FROM 成绩表 GROUP BY 班级;
- ORDER BY排序
ASC
升序(1→10)DESC
降序(10→1)
- LIMIT限制结果
LIMIT 5
只要前5条LIMIT 2,3
跳过前2条,拿3条(适合分页)
四、避坑指南
-
忘记WHERE ❌
UPDATE 用户 SET 密码='123'
→ 所有人密码都被改! ✅ 一定要加:WHERE 用户名='张三'
-
GROUP BY漏列 ❌
SELECT 班级, 姓名, AVG(分数)
→ 姓名不在GROUP BY里会报错 -
LIKE效率低
LIKE '%牛奶%'
慢(像翻整本字典)LIKE '牛奶%'
快(像查字典目录)
五、一句话记住核心
“SELECT是眼睛,WHERE是筛子, JOIN是胶水,GROUP BY是分类盒, ORDER BY是排队器,LIMIT是闸机”