
一、MySQL 是什么MySQL 是一款开源、免费、轻量、高效的关系型数据库管理系统RDBMS由瑞典 MySQL AB 公司开发目前隶属于 Oracle 旗下。它基于 SQL 结构化查询语言用于实现数据的存储、查询、更新、管理等全套数据库操作。在当下互联网行业中MySQL 是最主流的数据库之一广泛应用于 Web 开发、小程序、后端服务、中小型项目乃至大型分布式系统Java、Python、PHP 等主流开发语言均完美适配也是程序员面试、项目开发的必备技能。简单来说我们开发的网站、APP 产生的用户数据、订单数据、内容数据绝大部分都是存储在 MySQL 数据库中的。二、MySQL 核心优势为什么首选 MySQL相比于 Oracle、SQL Server、PostgreSQL 等数据库MySQL 凭借独特的优势占据了中小型项目的主流市场核心特点如下1.开源免费、成本极低社区版完全开源免费个人学习、企业商用无需授权费用极大降低了项目开发和运维成本。2.轻量高效、性能优异占用服务器资源少读写速度快支持高并发访问能够满足绝大多数互联网项目的业务并发需求。3.跨平台、兼容性强支持 Windows、Linux、MacOS 等所有主流操作系统适配几乎所有后端开发语言。4.稳定性高、成熟可靠发展二十余年版本迭代成熟bug 少、容错性高具备完善的事务、日志、备份机制。5.生态完善、上手简单中文文档丰富、社区活跃学习资料和问题解决方案随处可见新手入门门槛极低。6.支持事务、数据安全InnoDB 引擎支持 ACID 事务、行级锁、外键保障数据一致性和安全性适配电商、金融等对数据严谨性有要求的业务。三、MySQL 核心存储引擎存储引擎是 MySQL 存储、管理数据的核心组件不同引擎的特性不同适用场景也不同最常用的两种是 InnoDB 和 MyISAM。1. InnoDB默认引擎MySQL 5.5 及以上版本默认存储引擎也是企业项目的首选引擎。核心特性支持事务、行级锁、外键、崩溃恢复、MVCC 多版本并发控制数据安全性极高。适用场景增删改查频繁、对数据一致性要求高的业务如用户系统、订单系统、支付系统。2. MyISAM经典老引擎MySQL 5.5 之前的默认引擎结构简单、查询速度极快。核心特性不支持事务、不支持行锁仅支持表级锁崩溃后无法保证数据完整恢复。适用场景查询多、增删改少、无需事务的静态数据如文章资讯、日志数据。四、MySQL 基础核心概念想要用好 MySQL首先要理清层级结构MySQL 的数据存储层级为数据库 → 数据表 → 字段 → 数据行1.数据库Database相当于一个文件夹用于统一管理多张关联的数据表一个项目通常对应一个独立数据库。2.数据表Table相当于文件夹中的 Excel 表格是真正存储数据的载体分为表结构字段和表数据行数据。3.字段Column表格的列代表数据的属性如用户表的 id、用户名、密码、手机号。4.数据行Row表格的每一行代表一条完整的数据记录如一个用户的完整信息。关键约束保证数据规范主键PRIMARY KEY唯一标识一条数据非空且唯一常用自增 id 作为主键。非空约束NOT NULL字段不能为空必须填写数据。唯一约束UNIQUE字段数据唯一不可重复如手机号、邮箱。默认值DEFAULT字段未赋值时自动使用默认数据。五、MySQL 高频常用 SQL 语句可直接复制使用SQL 语句是操作 MySQL 的核心以下是开发、学习中最常用的基础语句简洁实用、可直接复制执行。1. 数据库操作-- 创建数据库CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARSET utf8mb4;-- 查看所有数据库SHOW DATABASES;-- 使用指定数据库USE test_db;-- 删除数据库DROP DATABASE IF EXISTS test_db;2. 数据表操作--创建用户表常用模板CREATE TABLE IF NOT EXISTS user (id INT PRIMARY KEY AUTO_INCREMENT COMMENT 主键ID,username VARCHAR(30) NOT NULL COMMENT 用户名,password VARCHAR(32) NOT NULL COMMENT 密码,phone VARCHAR(11) UNIQUE COMMENT 手机号,create_time DATETIME DEFAULT NOW() COMMENT 创建时间) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户信息表;-- 查看当前数据库所有表SHOW TABLES;-- 查看表结构DESC user;-- 删除数据表DROP TABLE IF EXISTS user;3. 数据增删改查CRUD 核心-- 新增数据INSERT INTO user(username,password,phone) VALUES (张三,123456,13800138000);-- 查询所有数据SELECT * FROM user;-- 条件查询精准查询SELECT * FROM user WHERE username张三;-- 分页查询常用-- 更新数据UPDATE user SET phone13900139000 WHERE id1;-- 删除单条数据DELETE FROM user WHERE id1;1.合理使用索引给 WHERE、JOIN、ORDER BY、GROUP BY 字段建立索引大幅提升查询速度避免过度索引索引会降低增删改效率。4.禁止模糊查询前置 %如 %张三 会导致索引失效尽量使用 张三% 后置模糊查询。7.定期优化数据清理冗余日志、过期数据定期优化数据表、重建索引。2. 互联网业务系统用户系统、订单系统、商品系统、留言评论系统。