MySQL 精华总结
一、SQL 四大分类(必须记住)
| 分类 | 全称 | 作用 | 常用命令 |
|---|---|---|---|
| DDL | 数据定义语言 | 操作数据库结构 | CREATE、ALTER、DROP |
| DML | 数据操作语言 | 操作数据 | INSERT、UPDATE、DELETE |
| DQL | 数据查询语言 | 查数据 | SELECT |
| DCL | 数据控制语言 | 权限管理 | GRANT、REVOKE |
二、最常用的 10 条命令(背下来)
sql
-- 1. 查数据(最重要)
SELECT * FROM 表名 WHERE 条件;
-- 2. 插数据
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
-- 3. 改数据
UPDATE 表名 SET 列=新值 WHERE 条件;
-- 4. 删数据(小心!)
DELETE FROM 表名 WHERE 条件;
-- 5. 建表
CREATE TABLE 表名 (列名 数据类型, ...);
-- 6. 改表结构
ALTER TABLE 表名 ADD/DROP/MODIFY 列名;
-- 7. 排序
SELECT * FROM 表名 ORDER BY 列名 DESC/ASC;
-- 8. 分组统计
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;
-- 9. 分页
SELECT * FROM 表名 LIMIT 起始位置, 数量;
-- 10. 多表连接
SELECT * FROM 表A JOIN 表B ON 表A.列 = 表B.列;
三、常用数据类型(记这6个就够了)
| 类型 | 示例 | 用途 |
|---|---|---|
INT |
18 | 整数(年龄、数量) |
DECIMAL(10,2) |
99.99 | 带小数的(价格、金额) |
VARCHAR(50) |
"张三" | 变长字符串(姓名、地址) |
TEXT |
长文章 | 长文本 |
DATE |
'2024-01-01' | 日期 |
DATETIME |
'2024-01-01 12:00:00' | 日期时间 |
四、查询条件 WHERE(核心语法)
sql
-- 比较运算
WHERE age > 18 -- 大于
WHERE age BETWEEN 18 AND 30 -- 范围
WHERE name = '张三' -- 等于(字符串要加引号)
WHERE name IS NULL -- 是空(不是 = NULL!)
-- 模糊查询
WHERE name LIKE '张%' -- 以张开头的
WHERE name LIKE '_三' -- 第二个字是"三"的
-- 多条件
WHERE age > 18 AND city = '北京'
WHERE age > 18 OR city = '上海'
WHERE city IN ('北京', '上海', '广州')
五、分组和聚合(统计必备)
sql
-- 5个聚合函数
COUNT(*) -- 统计行数
SUM(列) -- 求和
AVG(列) -- 平均值
MAX(列) -- 最大值
MIN(列) -- 最小值
-- 标准分组查询模板
SELECT
分组列,
COUNT(*) as 数量,
SUM(金额列) as 总金额
FROM 表名
WHERE 筛选条件 -- 分组前筛选
GROUP BY 分组列
HAVING 分组后筛选 -- 分组后筛选
ORDER BY 总金额 DESC
LIMIT 10;
六、多表连接(3种就够了)
sql
-- 内连接:两表都有才显示
SELECT * FROM 订单表
JOIN 用户表 ON 订单表.user_id = 用户表.id;
-- 左连接:左表全显示,右表没有的为NULL
SELECT * FROM 用户表
LEFT JOIN 订单表 ON 用户表.id = 订单表.user_id;
-- 右连接:右表全显示
SELECT * FROM 订单表
RIGHT JOIN 用户表 ON 订单表.user_id = 用户表.id;
七、NULL 的坑(面试常考)
sql
-- ❌ 错误写法
WHERE 列 = NULL -- 永远查不到数据!
WHERE 列 != NULL -- 也永远查不到!
-- ✅ 正确写法
WHERE 列 IS NULL
WHERE 列 IS NOT NULL
八、事务(保证数据一致性)
sql
-- 4个步骤
BEGIN; -- 1. 开始事务
UPDATE ...; -- 2. 执行操作
INSERT ...; -- 3. 执行操作
COMMIT; -- 4. 提交(成功)
ROLLBACK; -- 或者回滚(失败时撤销)
事务的四大特性 ACID:
-
A:原子性(要么全成功,要么全失败)
-
C:一致性(数据保持正确)
-
I:隔离性(事务间互不干扰)
-
D:持久性(提交后永久保存)
九、用户权限(常用3条)
sql
-- 创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
-- 授权
GRANT SELECT, INSERT ON 数据库.* TO '用户名'@'主机';
-- 查看权限
SHOW GRANTS FOR '用户名'@'主机';
十、备份恢复(保命技能)
bash
# 备份整个数据库
mysqldump -u root -p 数据库名 > backup.sql
# 恢复数据库
mysql -u root -p 数据库名 < backup.sql
# 备份所有数据库
mysqldump -u root -p --all-databases > all_backup.sql
📌 一句话记住精华
SELECT 查数据,WHERE 定条件,JOIN 连多表,GROUP BY 分组,ORDER BY 排序,LIMIT 分页,加上 ACID 事务保安全,定期备份不丢数据。