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 小时前
使用C/C++语言链接Mysql详解
数据库·c++·mysql
发际线还在3 小时前
互联网大厂Java三轮面试全流程实战问答与解析
java·数据库·分布式·面试·并发·系统设计·大厂
小王不爱笑1323 小时前
MyBatis 执行流程源码级深度解析:从 Mapper 接口到 SQL 执行的全链路逻辑
数据库·sql·mybatis
山峰哥4 小时前
SQL优化实战:从索引策略到执行计划的极致突破
数据库·sql·性能优化·编辑器·深度优先
总要冲动一次4 小时前
离线安装 percona-xtrabackup-24
linux·数据库·mysql·centos
lcrml5 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
阿达_优阅达5 小时前
告别手工对账:xSuite 如何帮助 SAP 企业实现财务全流程自动化?
服务器·数据库·人工智能·自动化·sap·企业数字化转型·xsuite
IvorySQL5 小时前
IvorySQL v5 发布后,我们想听听大家的使用体验
数据库·postgresql·开源
Maverick065 小时前
01- Oracle核心架构:理解数据库如何运转
数据库·oracle·架构