提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、MySQL数据库管理
-
- 1.1基本操作
- [1.2 常用字段数据类型](#1.2 常用字段数据类型)
- [1.3 数据库文件存储结构](#1.3 数据库文件存储结构)
- [1.4 SQL语句分类](#1.4 SQL语句分类)
- [1.5 DDL操作(数据库和表管理)](#1.5 DDL操作(数据库和表管理))
-
- [1.5.1 创建数据库](#1.5.1 创建数据库)
- [1.5.2 创建数据表](#1.5.2 创建数据表)
- [1.5.3 删除表](#1.5.3 删除表)
- [1.5.4 删除数据库](#1.5.4 删除数据库)
- [1.5.5 修改表结构](#1.5.5 修改表结构)
- [1.6. DML 操作(表数据管理)](#1.6. DML 操作(表数据管理))
-
- [1.6.1 插入数据](#1.6.1 插入数据)
- [1.6.2 更新数据](#1.6.2 更新数据)
- [1.7 DQL操作(数据查询)](#1.7 DQL操作(数据查询))
-
- [1.7.1 查询数据](#1.7.1 查询数据)
- [1.7.2 限制查询结果](#1.7.2 限制查询结果)
- 1.7.3竖向显示结果
- [1.8. 表高级操作](#1.8. 表高级操作)
-
- [1.8.1 临时表](#1.8.1 临时表)
- [1.8.2 克隆表](#1.8.2 克隆表)
- [1.9 用户管理](#1.9 用户管理)
-
- [1.9.1 创建用户](#1.9.1 创建用户)
- [1.9.2 查看用户](#1.9.2 查看用户)
- [1.9.3 删除用户](#1.9.3 删除用户)
- 1.9.4改密码
- [1.9.5 忘记root密码处理](#1.9.5 忘记root密码处理)
- [1.10 用户授权管理](#1.10 用户授权管理)
-
- [1.10.1 授权用户](#1.10.1 授权用户)
- [1.10.2 查看授权](#1.10.2 查看授权)
- [1.10.3 撤销权限](#1.10.3 撤销权限)
- 总结
前言
MySQL 数据库管理并非单纯的 "命令执行",而是以 "数据安全、系统稳定、性能最优" 为核心目标的体系化工作:小到一条 DELETE 语句的 WHERE 条件校验,大到 my.cnf 配置的参数调优,每一步操作都直接影响数据完整性和服务可用性。本文的内容均贴合一线运维场景,既覆盖基础的语法规则(如 CHAR/VARCHAR 选型、DECIMAL 精度设计),也强调风险防控(如 skip-grant-tables 的临时使用、事务回滚的必要性),旨在为使用者建立 "规范操作、风险先行、应急有策" 的管理思维。
一、MySQL数据库管理
1.1基本操作
3.2常用类型
3.3数据库的文件结构
3.4数据库存管理方式
3.5数据库高级操作
1.1.1查看数据库信息
css
SHOW DATABASES;
用途:显示当前 MySQL 服务器上所有数据库列表。

1.1.2切换数据库
css
USE 数据库名;
用途:切换当前操作的数据库。
1.1.3查看数据库中的表
css
SHOW TABLES;
SHOW TABLES IN 数据库名;
用途:显示当前数据库或指定数据库的所有表。

1.1.4查看表结构
css
1. DESCRIBE 表名;

输出信息包括:
Field:字段名
Type:数据类型
Null:是否允许为空
Key:键类型(主键、唯一键等)
Default:默认值
Extra:额外信息(如自增属性
1.2 常用字段数据类型
css
类型 说明 示例
INT 整型 id INT
FLOAT 单精度浮点,4 字节,可表示小数 score FLOAT
DOUBLE 双精度浮点 price DOUBLE
CHAR(n) 定长字符串 ,长度 n,不够补空格 name CHAR(10)
VARCHAR(n) 变长字符串,最大 n 个字符 address VARCHAR(50)
TEXT 文本类型 description TEXT
IMAGE 图像类型 photo IMAGE
DECIMAL(p,s) 精确数值类型,p=总长度,s=小数位 salary DECIMAL(5,2)
注意:CHAR类型长度不足时会补空格,超出长度时低版本截断,高版本报错。
主键唯一,可由多个字段组成(联合主键)。
1.3 数据库文件存储结构
MySQL数据存储在/usr/local/mysql/data目录下:
每个数据库对应一个子目录
每张表对应若干文件:
MyISAM引擎:.frm(表结构)、.MYD(数据)、.MYI(索引)
InnoDB引擎:独享表空间为.ibd文件,共享表空间为ibdata文件
1.4 SQL语句分类
css
分类 功能 常用语句
DDL(数据定义语言) 创建/修改/删除数据库对象 CREATE, DROP, ALTER
DML(数据操纵语言) 增删改表数据 INSERT, UPDATE, DELETE
DQL(数据查询语言) 查询数据 SELECT
DCL(数据控制语言) 用户权限管理 GRANT, REVOKE, COMMIT, ROLLBACK
1.5 DDL操作(数据库和表管理)
1.5.1 创建数据库
css
CREATE DATABASE 数据库名;
1.5.2 创建数据表
css
CREATE TABLE 表名 (
字段1 数据类型 [约束条件],
字段2 数据类型 [约束条件],
...
PRIMARY KEY (主键字段)
);

常用字段约束:
- NOT NULL:非空
- DEFAULT:默认值
- PRIMARY KEY:主键
- UNIQUE KEY:唯一键
- AUTO_INCREMENT:自增长

1.5.3 删除表
go
DROP TABLE 表名;
DROP TABLE 数据库名.表名;
1.5.4 删除数据库
go
DROP DATABASE 数据库名;

1.5.5 修改表结构
go
修改表名
ALTER TABLE 旧表名 RENAME 新表名;

go
修改字段
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;

go
删除字段
ALTER TABLE 表名 DROP 字段名;

1.6. DML 操作(表数据管理)
1.6.1 插入数据
go
INSERT INTO 表名(字段1,字段2,...) VALUES (值1, 值2, ...);

1.6.2 更新数据
go
UPDATE 表名 SET 字段1=值1[,字段2=值2] WHERE 条件;

PASSWORD(''):MySQL 内置函数,对空字符串进行哈希计算,生成固定的 41 位哈希值
1.6.3删除数据
go
DELETE FROM 表名 WHERE 条件;

1.7 DQL操作(数据查询)
1.7.1 查询数据
css
SELECT 字段1,字段2 FROM 表名 WHERE 条件;
SELECT * FROM 表名; -- 查询所有字段

1.7.2 限制查询结果
css
SELECT * FROM 表名 LIMIT 起始行, 查询条数;
SELECT * FROM 表名 LIMIT 2; -- 显示前2行
SELECT * FROM 表名 LIMIT 2,3; -- 从第2行开始显示3行

1.7.3竖向显示结果
css
SELECT * FROM 表名\G

1.8. 表高级操作
1.8.1 临时表
css
CREATE TEMPORARY TABLE 表名 (...);
临时表只存在于当前连接,会在连接关闭时自动销毁
可进行增删改查操作

1.8.2 克隆表
仅复制表结构
CREATE TABLE 新表 LIKE 旧表;
-- 如果想要插入数据
insert into 新表 select * from 旧表;

-- 复制表结构和数据
CREATE TABLE 新表 AS SELECT * FROM 旧表;(会丢失主键)
--或者
CREATE TABLE 新表 (SELECT * FROM 旧表);

1.9 用户管理
1.9.1 创建用户
go
CREATE USER '用户名'@'来源地址' IDENTIFIED BY '密码';
1.9.2 查看用户
go
USE mysql;
SELECT User, Host, authentication_string FROM user;

1.9.3 删除用户
DROP USER '用户名'@'来源地址';
1.9.4改密码
SET PASSWORD = PASSWORD('新密码'); -- 修改当前用户密码
SET PASSWORD FOR '用户'@'来源地址' = PASSWORD('新密码'); -- 修改指定用户密码

1.9.5 忘记root密码处理
1.修改配置文件/etc/my.cnf,添加:
go
[mysqld]
skip-grant-tables
2.重启MySQL服务并直接登录

3.执行密码修改:
UPDATE mysql.user SET AUTHENTICATION_STRING=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES;

4.删除skip-grant-tables配置并重启MySQL

1.10 用户授权管理
1.10.1 授权用户
go
GRANT 权限列表 ON 数据库.表 TO '用户名'@'来源地址' IDENTIFIED BY '密码';

1.10.2 查看授权
go
SHOW GRANTS FOR '用户名'@'来源地址'
1.10.3 撤销权限
go
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'来源地址';
REVOKE ALL ON *.* FROM 'lisi'@'%';
总结
综上,MySQL 数据库管理的本质是 "在安全与效率之间找到平衡",既需掌握扎实的基础语法与配置规则,也需建立风险防控意识,每一次操作都以 "数据安全、服务稳定" 为核心,才能让 MySQL 充分发挥其轻量、高效的优势,为业务提供可靠的数据支撑。