这是一份零基础可直接用 的 MySQL 核心操作笔记,覆盖库、表、数据、约束、查询、索引、事务高频用法,复制粘贴就能用,适合学习、复习、工作速查。
一、基础命令(登录 / 退出 / 查看)
sql
-- 登录MySQL
mysql -u 用户名 -p -- 回车后输入密码
-- 退出MySQL
exit; 或 quit;
-- 查看所有数据库
SHOW DATABASES;
-- 查看当前登录用户
SELECT USER();
-- 查看数据库版本
SELECT VERSION();
二、数据库(Database)操作
sql
-- 1. 创建数据库(指定字符集,避免乱码)
CREATE DATABASE 数据库名 DEFAULT CHARSET utf8mb4;
-- 2. 使用数据库(必须先选库,才能操作表)
USE 数据库名;
-- 3. 删除数据库(谨慎使用!)
DROP DATABASE 数据库名;
-- 4. 查看数据库创建语句
SHOW CREATE DATABASE 数据库名;
三、数据表(Table)操作
1. 创建表(最常用模板)
sql
CREATE TABLE 表名(
字段1 数据类型 约束,
字段2 数据类型 约束,
PRIMARY KEY(主键字段) -- 主键唯一标识
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2. 常用数据类型
- 整数 :
INT(常规)、TINYINT(小数字) - 字符串 :
VARCHAR(长度)(可变长度,必用) - 文本 :
TEXT(长文本) - 小数 :
DECIMAL(总长度,小数位)(金额专用) - 时间 :
DATETIME(年月日时分秒)、DATE(年月日)
3. 表操作命令
sql
-- 查看当前库所有表
SHOW TABLES;
-- 查看表结构
DESC 表名;
-- 查看表创建语句
SHOW CREATE TABLE 表名;
-- 修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;
-- 删除表(谨慎!)
DROP TABLE 表名;
4. 字段操作(增 / 删 / 改)
sql
-- 添加字段
ALTER TABLE 表名 ADD 字段名 数据类型;
-- 删除字段
ALTER TABLE 表名 DROP 字段名;
-- 修改字段名+类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;
-- 修改字段类型/约束
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
四、数据增删改查(CRUD)
1. 新增数据(INSERT)
sql
-- 全字段插入
INSERT INTO 表名 VALUES(值1,值2,值3);
-- 指定字段插入(推荐)
INSERT INTO 表名(字段1,字段2) VALUES(值1,值2);
-- 批量插入
INSERT INTO 表名(字段1,字段2) VALUES(值1,值2),(值3,值4);
2. 查询数据(SELECT)最核心
sql
-- 基础查询
SELECT * FROM 表名; -- 查询所有字段
SELECT 字段1,字段2 FROM 表名; -- 指定字段
-- 条件查询 WHERE
SELECT * FROM 表名 WHERE 条件;
-- 模糊查询 LIKE
-- %匹配任意字符,_匹配一个字符
SELECT * FROM 表名 WHERE 字段 LIKE '%关键词%';
-- 排序 ORDER BY(ASC升序/DESC降序)
SELECT * FROM 表名 ORDER BY 字段 DESC;
-- 分页 LIMIT(常用在列表页)
SELECT * FROM 表名 LIMIT 起始位置, 查询条数;
-- 例:第1页10条 LIMIT 0,10;第2页 LIMIT 10,10
-- 去重 DISTINCT
SELECT DISTINCT 字段 FROM 表名;
3. 修改数据(UPDATE)必须加 WHERE!
sql
-- 单字段修改
UPDATE 表名 SET 字段=新值 WHERE 条件;
-- 多字段修改
UPDATE 表名 SET 字段1=值1,字段2=值2 WHERE 条件;
⚠️ 警告:不加 WHERE 会修改全表数据!
4. 删除数据(DELETE)必须加 WHERE!
sql
DELETE FROM 表名 WHERE 条件;
⚠️ 警告:不加 WHERE 会清空全表数据!
五、常用约束(保证数据规范)
sql
-- 1. 主键 PRIMARY KEY:唯一+非空,一张表只有一个
id INT PRIMARY KEY AUTO_INCREMENT, -- 自增主键
-- 2. 非空 NOT NULL:字段不能为空
name VARCHAR(20) NOT NULL,
-- 3. 唯一 UNIQUE:值不能重复
phone VARCHAR(11) UNIQUE,
-- 4. 默认值 DEFAULT:没有赋值时用默认值
status TINYINT DEFAULT 1,
-- 5. 外键 FOREIGN KEY:关联两张表(少用,影响性能)
六、高级查询(必会)
1. 聚合函数
sql
SELECT
COUNT(*) AS 总条数, -- 统计行数
SUM(字段) AS 总和, -- 求和
AVG(字段) AS 平均值, -- 求平均
MAX(字段) AS 最大值, -- 最大
MIN(字段) AS 最小值 -- 最小
FROM 表名;
2. 分组查询 GROUP BY
sql
-- 按字段分组统计
SELECT 分组字段, COUNT(*) FROM 表名 GROUP BY 分组字段;
-- 分组后筛选 HAVING(必须跟在GROUP BY后)
SELECT 字段,COUNT(*) FROM 表名 GROUP BY 字段 HAVING COUNT(*)>数值;
3. 多表查询
sql
-- 内连接 INNER JOIN:取两张表匹配的数据
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.关联字段=表2.关联字段;
-- 左连接 LEFT JOIN:左表全部,右表匹配
SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.关联字段=表2.关联字段;
七、索引(提升查询速度)
sql
-- 创建普通索引
CREATE INDEX 索引名 ON 表名(字段);
-- 创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(字段);
-- 查看索引
SHOW INDEX FROM 表名;
-- 删除索引
DROP INDEX 索引名 ON 表名;
✅ 建议:经常用于 WHERE 查询的字段加索引,不要给所有字段都加。
八、事务(保证数据安全)
sql
-- 开启事务
START TRANSACTION; -- 或 BEGIN;
-- 执行增删改操作
INSERT/UPDATE/DELETE...
-- 提交事务(永久生效)
COMMIT;
-- 回滚事务(撤销所有操作)
ROLLBACK;
✅ 适用场景:转账、支付、订单等必须同时成功 / 失败的业务。
九、备份与恢复
bash
运行
-- 备份数据库(cmd执行,不是SQL语句)
mysqldump -u用户名 -p 数据库名 > 备份文件.sql
-- 恢复数据库
mysql -u用户名 -p 数据库名 < 备份文件.sql