MySQL 快速上手:数据库基本操作与管理

小飞兽 数据库 14 次阅读 2026-07-14

一、MySQL 是什么?

数据库是有结构地存储数据的地方。MySQL 是最流行的开源关系型数据库,想象一个 Excel 表格——每行是一条记录,每列是一个字段。WordPress、YouTube、Facebook 都用它来存数据。

二、安装和连接

sudo apt update && sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql

mysql -u root -p

三、基础操作

SHOW DATABASES;                    -- 查看所有数据库
CREATE DATABASE shop CHARSET=utf8mb4; -- 创建数据库
USE shop; -- 使用数据库
DROP DATABASE shop; -- 删除数据库(危险)

四、创建表

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

DESCRIBE users; -- 查看表结构

五、CRUD:增删改查

-- C:插入数据
INSERT INTO users (username, email, password) VALUES
("xiaoming", "xm@example.com", "hash123"),
("xiaohong", "xh@example.com", "hash456");

-- R:查询数据
SELECT * FROM users;
SELECT username, email FROM users;
SELECT * FROM users WHERE id = 1;
SELECT * FROM users WHERE username LIKE "xiao%";

-- U:更新数据
UPDATE users SET email = "new@example.com" WHERE id = 1;

-- D:删除数据
DELETE FROM users WHERE id = 2;

六、表关联查询

CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
total DECIMAL(10,2),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);

SELECT users.username, orders.total, orders.created_at
FROM users
INNER JOIN orders ON users.id = orders.user_id
ORDER BY orders.created_at DESC;

七、索引:加速查询

CREATE INDEX idx_username ON users(username);
CREATE INDEX idx_email ON users(email);

-- 查看查询是否使用了索引
EXPLAIN SELECT * FROM users WHERE username = "xiaoming";

八、备份与恢复

mysqldump -u root -p shop > shop_backup.sql
mysql -u root -p shop < shop_backup.sql

九、常见问题

中文乱码:创建数据库和表时指定 CHARSET=utf8mb4。

忘记密码:停掉 MySQL,用 --skip-grant-tables 模式重置。