返回目录

MySQL教程 - 互联网最流行的关系型数据库

MySQL是全球使用最广泛的开源关系型数据库管理系统,以其稳定、高效、易用著称。从小型网站到大型互联网应用,MySQL都是数据存储的首选。本教程将从SQL基础到高级优化,助你全面掌握MySQL。

一、MySQL简介

MySQL由瑞典MySQL AB公司开发,现属Oracle公司。它采用客户端/服务器架构,支持标准SQL语言,是LAMP/LNMP架构的核心组件。WordPress、淘宝等知名应用都使用MySQL存储数据。

特性描述
开源免费社区版免费使用,社区活跃
高性能InnoDB引擎支持事务,查询效率高
跨平台支持Windows、Linux、macOS等
易用性强SQL标准语法,学习成本低

二、你将学到什么

  • SQL基础:DDL建表、DML增删改、DQL查询、DCL权限
  • 查询进阶:多表JOIN、子查询、聚合函数、分组排序
  • 索引优化:B+树索引、联合索引、索引策略、执行计划
  • 事务与锁:ACID特性、隔离级别、MVCC、行锁表锁
  • 存储引擎:InnoDB与MyISAM对比、引擎选择
  • 运维管理:备份恢复、主从复制、读写分离、性能调优

三、代码示例

建表与查询的综合示例:

-- 创建用户表和订单表
CREATE TABLE users (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE orders (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT NOT NULL,
    amount DECIMAL(10,2) NOT NULL,
    status TINYINT DEFAULT 0 COMMENT "0=待支付,1=已支付,2=已取消",
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    INDEX idx_user_status (user_id, status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 多表联查:查询每个用户的订单总数和总金额
SELECT
    u.username,
    COUNT(o.id) AS order_count,
    IFNULL(SUM(o.amount), 0) AS total_amount
FROM users u
LEFT JOIN orders o ON u.id = o.user_id AND o.status = 1
GROUP BY u.id, u.username
HAVING total_amount > 100
ORDER BY total_amount DESC;

四、适合人群

  • 后端开发者,数据库是必备技能
  • 数据分析师,需要使用SQL查询和处理数据
  • 运维工程师,需要管理MySQL数据库
  • 想要系统学习数据库知识的初学者

五、学习建议

MySQL是后端开发的核心技能,建议边学边练。先掌握基本的CRUD和多表查询,再深入索引优化和事务机制。重点学习EXPLAIN执行计划分析,这是SQL调优的关键。建议安装本地MySQL环境,多做实验加深理解。

🎯 开始你的MySQL学习之旅吧!

课程信息:
共 5 个章节,预计学习时长 340 分钟,已有 2600 人学习

暂无内容