MySQL 快速上手:数据库基本操作与管理
一、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 模式重置。