本文摘要一、MySQL简介MySQL是最流行的开源关系型数据库管理系统,具有以下特点:开源免费:社区版完全免费,商业版提供企业级支持性能优异:处理速度快,支持高并发访问跨平台:支持Windows、Linux、Mac OS等多种操作系统生态完善:丰富的工具、文档和社区支持二、基础入门1. 安装与配置Windows:下载安装包,图形化安装Linux:apt/yum命令安装,配置my.cnfMac:brew i...
一、MySQL简介
MySQL是最流行的开源关系型数据库管理系统,具有以下特点:
- 开源免费:社区版完全免费,商业版提供企业级支持
- 性能优异:处理速度快,支持高并发访问
- 跨平台:支持Windows、Linux、Mac OS等多种操作系统
- 生态完善:丰富的工具、文档和社区支持
二、基础入门
1. 安装与配置
- Windows:下载安装包,图形化安装
- Linux:apt/yum命令安装,配置my.cnf
- Mac:brew install mysql
2. 基本操作
-- 登录数据库
mysql -u root -p
-- 查看所有数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE test_db CHARACTER SET utf8mb4;
-- 使用数据库
USE test_db;
-- 查看所有表
SHOW TABLES;3. 数据类型
- 数值型:INT、BIGINT、FLOAT、DOUBLE、DECIMAL
- 字符串:CHAR、VARCHAR、TEXT、BLOB
- 日期时间:DATE、TIME、DATETIME、TIMESTAMP
三、SQL语句详解
1. DDL(数据定义语言)
-- 创建表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(100) NOT NULL,
email VARCHAR(100),
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 修改表结构
ALTER TABLE users ADD COLUMN age INT;
ALTER TABLE users MODIFY COLUMN username VARCHAR(80);
ALTER TABLE users DROP COLUMN age;
-- 删除表
DROP TABLE users;2. DML(数据操作语言)
-- 插入数据
INSERT INTO users (username, password, email)
VALUES ('admin', '123456', 'admin@example.com');
-- 更新数据
UPDATE users SET email = 'new@example.com' WHERE id = 1;
-- 删除数据
DELETE FROM users WHERE id = 1;3. DQL(数据查询语言)
-- 基础查询
SELECT * FROM users;
SELECT username, email FROM users WHERE id = 1;
-- 条件查询
SELECT * FROM users WHERE create_time > '2026-01-01';
-- 排序和分页
SELECT * FROM users ORDER BY create_time DESC LIMIT 10 OFFSET 0;
-- 聚合函数
SELECT COUNT(*) FROM users;
SELECT MAX(id), MIN(id), AVG(id) FROM users;
-- 分组查询
SELECT COUNT(*), DATE(create_time) FROM users GROUP BY DATE(create_time);4. 联表查询
-- INNER JOIN
SELECT u.*, o.order_no
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
-- LEFT JOIN
SELECT u.*, o.order_no
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;四、进阶技能
1. 索引优化
- 主键索引:PRIMARY KEY
- 唯一索引:UNIQUE
- 普通索引:INDEX
- 联合索引:INDEX(col1, col2, col3)
-- 创建索引
CREATE INDEX idx_username ON users(username);
CREATE INDEX idx_email ON users(email);
-- 查看执行计划
EXPLAIN SELECT * FROM users WHERE username = 'admin';2. 事务处理
-- 开启事务
START TRANSACTION;
-- 执行SQL
UPDATE account SET balance = balance - 100 WHERE id = 1;
UPDATE account SET balance = balance + 100 WHERE id = 2;
-- 提交事务
COMMIT;
-- 回滚事务
-- ROLLBACK;3. 存储过程与函数
-- 创建存储过程
DELIMITER //
CREATE PROCEDURE GetUserById(IN userId INT)
BEGIN
SELECT * FROM users WHERE id = userId;
END //
DELIMITER ;
-- 调用存储过程
CALL GetUserById(1);五、性能优化
- 索引优化:为常用查询字段建立合适的索引
- SQL优化:避免SELECT *,使用LIMIT分页,避免全表扫描
- 分库分表:数据量大时考虑水平/垂直拆分
- 读写分离:主库写,从库读,提高并发能力
- 缓存策略:Redis缓存热点数据,减少数据库压力
六、学习建议
- 多练习:SQL语法需要大量练习才能熟练
- 看官方文档:MySQL官方文档是最好的学习资料
- 理解原理:了解索引原理、事务隔离级别等底层机制
- 实战项目:通过实际项目积累经验
- 持续学习:MySQL版本更新,新特性需要持续关注
MySQL是后端开发必备技能,掌握它让你如虎添翼!
觉得内容不错?我要