MySQL数据库入门:从安装到增删改查

MySQL 是最流行的关系型数据库之一,几乎所有后端开发都会用到。这篇文章带你从零开始掌握 MySQL 的基本操作。

一、安装 MySQL

# Ubuntu/Debian
sudo apt install mysql-server

# macOS (Homebrew)
brew install mysql

# 启动服务
sudo systemctl start mysql
sudo systemctl enable mysql

二、数据库和表操作

-- 创建数据库
CREATE DATABASE mydb CHARACTER SET utf8mb4;

-- 查看所有数据库
SHOW DATABASES;

-- 选择数据库
USE mydb;

-- 创建表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    age INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 查看表结构
DESC users;
SHOW CREATE TABLE users;

三、增删改查(CRUD)

-- 插入数据
INSERT INTO users (username, email, age) 
VALUES ('小明', 'xiaoming@example.com', 25);

INSERT INTO users (username, email, age) VALUES
('小红', 'xiaohong@example.com', 23),
('小华', 'xiaohua@example.com', 28);

-- 查询数据
SELECT * FROM users;
SELECT username, email FROM users WHERE age > 20;
SELECT * FROM users ORDER BY age DESC LIMIT 10;

-- 更新数据
UPDATE users SET age = 26 WHERE username = '小明';

-- 删除数据
DELETE FROM users WHERE id = 3;

四、高级查询

-- 聚合函数
SELECT COUNT(*) FROM users;
SELECT AVG(age) FROM users;
SELECT MAX(age), MIN(age) FROM users;

-- 分组查询
SELECT age, COUNT(*) as cnt 
FROM users 
GROUP BY age 
HAVING cnt > 1;

-- 多表关联(需要先创建 orders 表)
SELECT u.username, o.total 
FROM users u 
JOIN orders o ON u.id = o.user_id;

-- 子查询
SELECT * FROM users 
WHERE age > (SELECT AVG(age) FROM users);

五、索引优化

-- 创建索引
CREATE INDEX idx_username ON users(username);
CREATE INDEX idx_email ON users(email);

-- 查看索引
SHOW INDEX FROM users;

-- 分析查询性能
EXPLAIN SELECT * FROM users WHERE username = '小明';

六、备份与恢复

# 备份
mysqldump -u root -p mydb > backup.sql

# 恢复
mysql -u root -p mydb < backup.sql

七、安全建议

  • 不要直接用 root 用户跑应用
  • 密码要复杂,定期更换
  • 开放端口要做好访问控制
  • 重要数据定期备份,备份要验证能恢复

这些就是 MySQL 的核心操作。把 CRUD 练熟了,你就已经超越了70%的数据库使用者。