MySQL 数据库操作

这是一份零基础可直接用 的 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

相关推荐
渣渣盟1 天前
数据库设计范式详解(纯小白版)
数据库·oracle·软考·数据库工程师
夜雪闻竹1 天前
Cursor 对话导入:解析 SQLite 里的宝藏
数据库·sqlite·ai编程
hhb_6181 天前
PL/SQL核心技术难点梳理与实战应用案例解析
数据库·sql
m0_470857641 天前
PHP怎么实现工厂模式_Factory模式编写指南【指南】
jvm·数据库·python
用户434309241691 天前
Day29:图片上传 + 存数据库(Multer + MySQL)
数据库·后端
lolo大魔王1 天前
MongoDB 索引机制详解:单字段索引、复合索引、唯一索引与性能优化
数据库·mongodb
newnazi1 天前
RedHat10 安装MS SQL Server2025
linux·服务器·数据库
KaMeidebaby1 天前
卡梅德生物技术快报|单 B 细胞抗体制备:流程优化、表达系统适配与性能数据
前端·数据库·其他·百度·新浪微博
2301_783848651 天前
mysql数据库迁移到云平台流程_使用数据传输服务DTS工具
jvm·数据库·python
爱喝水的鱼丶1 天前
SAP-ABAP:ABAP函数 NUMBER_GET_NEXT 详解:从编号范围对象获取下一个编号
运维·数据库·学习·sap·abap