MySQL使用手册

当然可以 👍
下面是一份适合初学者到中级用户的 MySQL 详细使用手册,内容系统、实用、可直接保存为文档使用。


🐬 MySQL 使用手册(详细版)

目录

  1. MySQL 简介
  2. 安装与启动
  3. 基本命令
  4. 用户与权限管理
  5. 数据库操作
  6. 表操作
  7. 数据操作(增删改查)
  8. 常用函数
  9. 视图(View)
  10. 索引(Index)
  11. 事务(Transaction)
  12. 备份与恢复
  13. 常见问题与优化建议

1️⃣ MySQL 简介

MySQL 是一种流行的开源关系型数据库管理系统(RDBMS),使用 SQL(结构化查询语言)来管理数据。


2️⃣ 安装与启动

🧩 安装

Windows

  • 可通过 MySQL Installer 安装包或 WAMP/MAMP/XAMPP 集成环境。
  • 安装后确保 mysql.exe 已添加到系统环境变量。

macOS

1
brew install mysql

Linux (Ubuntu/Debian)

1
2
sudo apt update
sudo apt install mysql-server

▶️ 启动 / 停止

1
2
3
4
5
6
7
8
# 启动 MySQL
sudo service mysql start

# 停止 MySQL
sudo service mysql stop

# 查看状态
sudo service mysql status

3️⃣ 基本命令

登录 MySQL

1
mysql -u root -p

查看所有数据库

1
SHOW DATABASES;

选择数据库

1
USE 数据库名;

查看当前数据库中所有表

1
SHOW TABLES;

查看当前用户

1
SELECT USER();

退出 MySQL

1
EXIT;

4️⃣ 用户与权限管理

创建用户

1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • host 可以是:

    • 'localhost' → 仅限本机登录
    • '%' → 任意主机可登录

授予权限

1
GRANT ALL PRIVILEGES ON 数据库名.* TO 'username'@'host';

收回权限

1
REVOKE ALL PRIVILEGES ON 数据库名.* FROM 'username'@'host';

查看用户权限

1
SHOW GRANTS FOR 'username'@'host';

删除用户

1
DROP USER 'username'@'host';

5️⃣ 数据库操作

创建数据库

1
CREATE DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

删除数据库

1
DROP DATABASE 数据库名;

修改数据库编码

1
ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

6️⃣ 表操作

创建表

1
2
3
4
5
6
7
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
gender ENUM('M','F'),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

查看表结构

1
DESC students;

修改表

1
2
3
ALTER TABLE students ADD COLUMN address VARCHAR(100);
ALTER TABLE students MODIFY COLUMN age SMALLINT;
ALTER TABLE students DROP COLUMN address;

删除表

1
DROP TABLE students;

7️⃣ 数据操作(CRUD)

插入数据

1
INSERT INTO students (name, age, gender) VALUES ('Tom', 20, 'M');

查询数据

1
2
SELECT * FROM students;
SELECT name, age FROM students WHERE gender='M' ORDER BY age DESC LIMIT 5;

更新数据

1
UPDATE students SET age=22 WHERE name='Tom';

删除数据

1
DELETE FROM students WHERE id=3;

8️⃣ 常用函数

类型 示例 功能
数值 ROUND(3.14159, 2) 四舍五入
字符串 CONCAT(first_name, ' ', last_name) 字符串拼接
日期 NOW() 当前时间
聚合 COUNT(*), AVG(age), SUM(price) 统计数据
条件 IF(age>18, 'adult', 'child') 条件判断

9️⃣ 视图(View)

创建视图

1
2
CREATE VIEW adult_students AS
SELECT name, age FROM students WHERE age >= 18;

查询视图

1
SELECT * FROM adult_students;

删除视图

1
DROP VIEW adult_students;

🔟 索引(Index)

创建索引

1
CREATE INDEX idx_name ON students(name);

查看索引

1
SHOW INDEX FROM students;

删除索引

1
DROP INDEX idx_name ON students;

1️⃣1️⃣ 事务(Transaction)

开启事务

1
START TRANSACTION;

回滚

1
ROLLBACK;

提交

1
COMMIT;

示例

1
2
3
4
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

1️⃣2️⃣ 备份与恢复

备份数据库

1
mysqldump -u root -p 数据库名 > backup.sql

恢复数据库

1
mysql -u root -p 数据库名 < backup.sql

1️⃣3️⃣ 常见问题与优化建议

问题 解决方法
无法远程登录 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码';
中文乱码 设置数据库与表为 utf8mb4
查询慢 建立索引、避免 SELECT *、使用 LIMIT
忘记 root 密码 使用 mysqld_safe --skip-grant-tables 进入安全模式修改

🧠 小结

  • SHOW 系列命令:查看信息(库、表、用户、权限)
  • CREATEALTERDROP:结构操作
  • INSERTUPDATEDELETESELECT:数据操作
  • GRANTREVOKE:权限管理
  • mysqldumpmysql:备份与恢复