# MySQL 快速开始
# 安装配置
# 下载安装
- 访问 MySQL官网 (opens new window) 下载适合的版本
- 按照向导完成安装
- 记住root用户的初始密码
# 启动服务
# macOS
brew services start mysql
# Windows
net start mysql
# Linux
sudo service mysql start
# 连接MySQL
mysql -u root -p
# 基本操作
# 数据库操作
-- 查看所有数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE mydb;
-- 使用数据库
USE mydb;
-- 删除数据库
DROP DATABASE mydb;
# 表操作
-- 创建表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 查看表结构
DESC users;
-- 修改表
ALTER TABLE users ADD COLUMN age INT;
-- 删除表
DROP TABLE users;
# 数据操作
# 插入数据
-- 单行插入
INSERT INTO users (username, email)
VALUES ('alice', 'alice@example.com');
-- 多行插入
INSERT INTO users (username, email) VALUES
('bob', 'bob@example.com'),
('charlie', 'charlie@example.com');
# 查询数据
-- 基本查询
SELECT * FROM users;
-- 条件查询
SELECT username, email
FROM users
WHERE age >= 18;
-- 排序
SELECT * FROM users
ORDER BY created_at DESC;
-- 分页
SELECT * FROM users
LIMIT 10 OFFSET 0;
# 更新数据
-- 更新单个字段
UPDATE users
SET age = 25
WHERE username = 'alice';
-- 更新多个字段
UPDATE users
SET age = 30, email = 'new@example.com'
WHERE id = 1;
# 删除数据
-- 删除指定记录
DELETE FROM users
WHERE username = 'bob';
-- 清空表
TRUNCATE TABLE users;
# 高级查询
# 连接查询
-- 内连接
SELECT orders.id, users.username
FROM orders
INNER JOIN users ON orders.user_id = users.id;
-- 左连接
SELECT users.username, orders.id
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
# 聚合函数
-- 计数
SELECT COUNT(*) FROM users;
-- 求和
SELECT SUM(amount) FROM orders;
-- 分组统计
SELECT user_id, COUNT(*) as order_count
FROM orders
GROUP BY user_id;
# 用户管理
# 创建用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
# 授权
-- 授予所有权限
GRANT ALL PRIVILEGES ON mydb.* TO 'newuser'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
# 备份和恢复
# 备份数据库
mysqldump -u root -p mydb > backup.sql
# 恢复数据库
mysql -u root -p mydb < backup.sql
# 性能优化
# 索引
-- 创建索引
CREATE INDEX idx_username ON users(username);
-- 查看索引
SHOW INDEX FROM users;
# 查看执行计划
EXPLAIN SELECT * FROM users WHERE username = 'alice';
# 下一步
- 学习高级SQL语法
- 了解数据库设计原则
- 掌握性能优化技巧
- 学习数据库管理