Skip to content

MySQL完整学习教程

概述

本教程面向从零开始学习MySQL数据库的读者设计,使用中英文双语编写,内容涵盖从基础概念到高级应用的全方位知识。无论您是软件开发者、数据分析师还是数据库管理员,本教程都将帮助您掌握MySQL数据库的核心技能。

教程特点

  • 循序渐进 - 从基础到高级,逐步深入
  • 双语对照 - 中英文同步讲解
  • 实践导向 - 大量可运行的示例代码
  • 实用性强 - 含含真实场景的应用案例
  • 内容完整 - 涵盖35+核心主题

教程结构

第一部分:基础

第二部分:核心操作

第三部分:高级主题

第四部分:数据操作

快速入门

安装MySQL

bash
# Windows: Download from dev.mysql.com
# macOS: brew install mysql
brew install mysql@8.0

# Linux (Ubuntu/Debian)
sudo apt update
sudo apt install mysql-server

# Start MySQL service
sudo systemctl start mysql

连接MySQL

bash
mysql -u root -p

# 创建数据库
CREATE DATABASE myapp;
USE myapp;

# 创建表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

# 插入数据
INSERT INTO users (name, email) VALUES 
    ('张三', 'zhangsan@example.com'),
    ('李四', 'lisi@example.com');

# 查询数据
SELECT * FROM users;

MySQL核心概念

数据库操作

sql
-- 显示所有数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE database_name;

-- 使用数据库
USE database_name;

-- 删除数据库
DROP DATABASE database_name;

表操作

sql
-- 显示所有表
SHOW TABLES;

-- 创建表
CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    PRIMARY KEY (column1)
);

-- 显示表结构
DESCRIBE table_name;

-- 删除表
DROP TABLE table_name;

CRUD操作

sql
-- 创建(插入)
INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');

-- 读取(查询)
SELECT * FROM users;

-- 更新
UPDATE users SET name = '李四' WHERE name = '张三';

-- 删除
DELETE FROM users WHERE name = '李四';

数据类型速查

数值类型

类型存储范围描述
TINYINT1 byte-128 to 127小整数
INT4 bytes-2147483648 to 2147483647整数
BIGINT8 bytes-9.2e+18 to 9.2e+18大整数
FLOAT4 bytes-3.4E+38 to 3.4E+38单精度浮点
DOUBLE8 bytes-1.7E+308 to 1.7E+308双精度浮点
DECIMAL(M,D)变长精确数值精确数值

字符串类型

类型最大长度描述
CHAR255定长字符串
VARCHAR65535变长字符串
TEXT65535文本
MEDIUMTEXT16777215中文本
LONGTEXT4294967295长文本

日期时间类型

类型大小范围描述
DATE3 bytes1000-01-01 to 9999-12-31日期
TIME3 bytes-838:59:59 to 838:59:59时间
DATETIME8 bytes1000-01-01 00:00:00 to 9999-12-31 23:59:59日期时间
TIMESTAMP4 bytes1970-01-01 00:00:01 to 2038-01-19:03:14:07:19:03:14:07时间戳
YEAR1 byte1901 to 2155年份

学习路径

初学者路径(1-2周)

  1. MySQL简介和安装
  2. MySQL管理基础
  3. 连接MySQL服务器
  4. 创建和管理数据库
  5. 理解数据类型
  6. 创建和操作数据表
  7. 基本的INSERT和SELECT操作
  8. 使用WHERE子句过滤数据

中级路径(3-4周)

  1. 高级SELECT查询
  2. UPDATE和DELETE操作
  3. LIKE和正则表达式
  4. UNION和排序
  5. 分组和聚合
  6. 多表连接
  7. 处理NULL值
  8. 事务管理

高级路径(5-6周)

  1. 索引优化
  2. ALTER命令高级用法
  3. 临时表和复制表
  4. 元数据和序列
  5. 处理重复数据
  6. SQL注入防护
  7. 数据导入导出
  8. MySQL函数和运算符

在线资源

官方文档

在线学习

社区资源

最佳实践

命名规范

sql
-- 使用小写和下划线
CREATE TABLE user_accounts;     -- 推荐 / Recommended
CREATE TABLE UserAccounts;   -- 避免 / Avoid

-- 表名使用复数
CREATE TABLE users;          -- 常见做法 / Common practice

安全实践

sql
-- 创建具有有限权限的用户
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT SELECT, INSERT, UPDATE, DELETE ON myapp.* TO 'app_user'@'localhost';

-- 预防SQL注入
PREPARE stmt FROM 'SELECT * FROM users WHERE id = ?';
SET @id = 1;
EXECUTE stmt USING @id;

性能优化

sql
-- 创建适当的索引
CREATE INDEX idx_users_email ON users(email);

-- 使用EXPLAIN分析查询
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';

-- 避免SELECT *
SELECT id, name, email FROM users;

开始学习: MySQL简介

最后更新: 2026-01-21