一、MySQL 是什么?
- 一款关系型数据库,以表格形式存储数据。
- 表由行(记录) 和列(字段) 组成。
- 通过 SQL(结构化查询语言)操作数据。
二、最常用的数据类型(记住3类)
|
|
|
|
|---|---|---|
|
|
INT |
|
|
|
VARCHAR(长度) |
|
|
|
DATETIME |
|
简单记忆:数字用
INT,文本用VARCHAR,时间用DATETIME
三、SQL 四大类(重点学前两类)
|
|
|
|
|---|---|---|
| DDL |
|
CREATE, ALTER, DROP |
| DML |
|
SELECT, INSERT, UPDATE, DELETE |
|
|
|
GRANT, REVOKE |
|
|
|
COMMIT, ROLLBACK |
四、表操作(DDL 示例)
1. 创建表
CREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT, -- 主键、自动增长name VARCHAR(50) NOT NULL, -- 不能为空age INT,class VARCHAR(20));
2. 修改表
-- 添加列ALTER TABLE student ADD phone VARCHAR(20);-- 修改列类型ALTER TABLE student MODIFY age TINYINT;-- 删除列ALTER TABLE student DROP class;
3. 删除表
DROP TABLE student;
五、数据操作(DML 重点)
1. 增(INSERT)
-- 插入一条完整数据INSERT INTO student VALUES (1, '张三', 20, '3年1班');-- 指定列插入INSERT INTO student (name, age) VALUES ('李四', 21);
2. 删(DELETE)
-- 删除所有数据(危险)DELETE FROM student;-- 删除指定条件数据DELETE FROM student WHERE name = '张三';
3. 改(UPDATE)
-- 一定要加 WHERE,否则全表更新!UPDATE student SET age = 22 WHERE name = '李四';
4. 查(SELECT)—— 最最重要
-- 查询所有列SELECT * FROM student;-- 查询指定列SELECT name, age FROM student;-- 条件查询SELECT * FROM student WHERE age > 20;-- 模糊查询(% 代表任意多个字符)SELECT * FROM student WHERE name LIKE '张%';-- 排序(DESC 降序,ASC 升序默认)SELECT * FROM student ORDER BY age DESC;-- 限制条数SELECT * FROM student LIMIT 3;
六、常用函数(会这几个就行)
|
|
|
|
|---|---|---|
COUNT(*) |
|
SELECT COUNT(*) FROM student |
SUM(列) |
|
SELECT SUM(score) FROM exam |
AVG(列) |
|
SELECT AVG(age) FROM student |
MAX/MIN |
|
SELECT MAX(age) FROM student |
NOW() |
|
INSERT INTO t (create_time) VALUES (NOW()) |
七、分组查询(GROUP BY + 聚合函数)
-- 统计每个班级的学生人数SELECT class, COUNT(*)FROM studentGROUP BY class;
记住:
SELECT中出现的非聚合列必须出现在GROUP BY后面。
八、表连接(最简单的一种:INNER JOIN)
有两张表:
- 学生表
student(id, name, class_id) - 班级表
class(id, name)
-- 查询学生及其班级名称SELECT s.name, c.nameFROM student sINNER JOIN class c ON s.class_id = c.id;
九、索引(知道是什么就行)
- 作用:加快查询速度(像书的目录)
- 创建索引:
CREATE INDEX idx_name ON student(name);
- 原则:对经常作为
WHERE条件的列建索引
不要对每列都建索引,会降低写入速度。
十、事务(简化版理解)
- 作用:让一系列操作“要么全部成功,要么全部失败”
- 经典场景:转账(A扣钱 + B加钱 必须同时成功)
BEGIN; -- 开始事务UPDATE account SET money = money - 100 WHERE name = '张三';UPDATE account SET money = money + 100 WHERE name = '李四';COMMIT; -- 提交(真正生效)-- 如果出错用 ROLLBACK 回滚
十一、最简单的备份与恢复
# 备份整个数据库mysqldump -u root -p 数据库名 > backup.sql# 恢复mysql -u root -p 数据库名 < backup.sql
十二、几条必记原则(避坑指南)
- UPDATE / DELETE 必须带 WHERE,否则全表遭殃。
- 尽量不用
SELECT *,需要什么列写什么列。 - 每张表都要有主键(一般叫
id,AUTO_INCREMENT)。 - 字段尽量设为
NOT NULL,并给默认值。 - 数据量大时,
LIMIT分页,别一次查几十万行。
版权申明:内容来源网络,版权归原创者所有,如有侵权请联系删除
想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

17认证网








