MySQL 开源关系型数据库,使用 SQL 语句管理数据,支持 Windows/Linux/macOS,主流存储引擎:

  1. InnoDB(默认):支持事务、外键、行锁,业务系统首选

  2. MyISAM:不支持事务,查询快,适合静态数据

  3. Memory:数据存内存,重启丢失

二、常用登录命令

1. 本地登录

bash

运行

# 基础登录
mysql -uroot -p
# 指定端口、IP
mysql -uroot -p -h127.0.0.1 -P3306
# 直接带密码(不推荐生产)
mysql -uroot -p123456

2. 退出

sql

exit;
quit;

三、数据库操作

1. 创建数据库

sql

CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

utf8mb4 支持完整 emoji,推荐代替旧 utf8

2. 查看、切换、删除库

sql

-- 所有数据库
SHOW DATABASES;
-- 使用数据库
USE test_db;
-- 删除数据库
DROP DATABASE IF EXISTS test_db;

四、数据表操作

1. 建表示例

sql

CREATE TABLE `user` (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
  username VARCHAR(50) NOT NULL COMMENT '用户名',
  age TINYINT DEFAULT 0 COMMENT '年龄',
  create_time DATETIME DEFAULT NOW() COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

2. 表常用命令

sql

-- 查看当前库所有表
SHOW TABLES;
-- 查看表结构
DESC user;
-- 删除表
DROP TABLE IF EXISTS user;
-- 修改表名
ALTER TABLE user RENAME TO sys_user;

五、增删改查 CRUD(核心)

1. 新增 INSERT

sql

INSERT INTO user(username,age) VALUES ('张三',20),('李四',22);

2. 查询 SELECT

sql

-- 全表查询
SELECT * FROM user;
-- 指定字段+条件
SELECT id,username FROM user WHERE age>18;
-- 分页 limit
SELECT * FROM user LIMIT 0,10;
-- 排序
SELECT * FROM user ORDER BY create_time DESC;

3. 更新 UPDATE(必须加 WHERE,否则全表更新)

sql

UPDATE user SET age=25 WHERE id=1;

4. 删除 DELETE

sql

DELETE FROM user WHERE id=1;
-- 清空表(自增重置,不可回滚)
TRUNCATE TABLE user;

六、用户与权限管理

sql

-- 创建用户
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
-- 授权库所有权限
GRANT ALL ON test_db.* TO 'test'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
-- 撤销权限
REVOKE ALL ON test_db.* FROM 'test'@'%';
-- 删除用户
DROP USER IF EXISTS 'test'@'%';

% 代表允许任意 IP 访问;localhost 仅本地登录

七、备份与恢复

1. 备份 mysqldump

bash

运行

# 单库备份
mysqldump -uroot -p test_db > test_20260714.sql
# 全库备份
mysqldump -uroot -p --all-databases > all.sql

2. 恢复

bash

运行

# 命令行恢复
mysql -uroot -p test_db < test_20260714.sql
# mysql客户端内恢复
source /data/test_20260714.sql;