MySQL作为全球最流行的开源关系型数据库,在Web应用、数据分析等领域占据核心地位。本文将系统讲解MySQL的基础操作,帮助您快速掌握数据库管理核心技能。
一、数据库管理操作
1. 创建与选择数据库
sql
-- 创建新数据库(设置字符集) CREATE DATABASE school_db DEFAULT CHARACTER SET utf8mb4; -- 查看所有数据库 SHOW DATABASES; -- 选择当前数据库 USE school_db;
2. 删除数据库(谨慎操作!)
sql
DROP DATABASE IF EXISTS test_db;
二、数据表管理操作
1. 创建数据表(含完整约束)
sql
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY, -- 自增主键
name VARCHAR(50) NOT NULL, -- 非空约束
gender ENUM('M','F') DEFAULT 'M', -- 枚举类型
birth DATE,
email VARCHAR(100) UNIQUE, -- 唯一约束
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
2. 修改表结构
sql
-- 添加新列 ALTER TABLE students ADD COLUMN phone CHAR(11) AFTER name; -- 修改列类型 ALTER TABLE students MODIFY COLUMN phone VARCHAR(20); -- 删除列 ALTER TABLE students DROP COLUMN birth;
3. 删除数据表
sql
DROP TABLE IF EXISTS temp_users;
三、数据增删改查(CRUD)
1. 插入数据
sql
-- 单条插入
INSERT INTO students (name, email)
VALUES ('张三', 'zhangsan@example.com');
-- 批量插入
INSERT INTO students (name, email) VALUES
('李四', 'lisi@example.com'),
('王五', 'wangwu@example.com');
2. 查询数据
sql
-- 基础查询 SELECT id, name, email FROM students; -- 条件查询 SELECT * FROM students WHERE created_at > '2025-01-01'; -- 排序与分页 SELECT name, email FROM students ORDER BY id DESC LIMIT 10 OFFSET 0;
3. 更新数据
sql
UPDATE students SET phone = '13800138000' WHERE name = '张三';
4. 删除数据
sql
-- 清空表(不可恢复) TRUNCATE TABLE log_table; -- 条件删除 DELETE FROM students WHERE created_at < '2020-01-01';
四、高级查询技巧
1. 聚合函数与分组
sql
SELECT
COUNT(*) AS total,
AVG(score) AS avg_score,
MAX(score) AS max_score
FROM exam_results
GROUP BY class_id;
2. 多表连接查询
sql
SELECT
s.name,
c.course_name,
sc.score
FROM students s
JOIN scores sc ON s.id = sc.student_id
JOIN courses c ON sc.course_id = c.id;
3. 子查询应用
sql
SELECT name, email
FROM students
WHERE id IN (
SELECT student_id
FROM scores
WHERE score > 90
);
五、实用管理命令
1. 索引管理
sql
-- 创建索引 CREATE INDEX idx_name ON students(name); -- 查看索引 SHOW INDEX FROM students;
2. 用户权限管理
sql
-- 创建用户 CREATE USER 'web_user'@'%' IDENTIFIED BY 'SecurePass123!'; -- 授权操作 GRANT SELECT, INSERT, UPDATE ON school_db.* TO 'web_user'@'%'; -- 权限刷新 FLUSH PRIVILEGES;
3. 数据备份与恢复
bash
# 命令行备份 mysqldump -u root -p school_db > school_backup.sql # 命令行恢复 mysql -u root -p school_db < school_backup.sql
六、避坑指南(2025版)
-
字符集陷阱
务必使用utf8mb4(支持emoji表情),避免传统utf8的兼容问题 -
时间类型选择
-
DATETIME:存储日期+时间(8字节) -
TIMESTAMP:自动时区转换(4字节) -
推荐:
DATETIME(6)支持微秒精度
-
-
索引优化原则
-
为WHERE/JOIN/ORDER BY字段建索引
-
避免在性别等低区分度字段建索引
-
联合索引遵循最左匹配原则
-
-
生产环境禁用操作
sql
DROP DATABASE; -- 无备份不执行 SELECT *; -- 大表禁止全表扫描
结语
掌握MySQL基础操作是数据库管理的起点。2025年MySQL 8.4版本在性能(查询速度提升15%)、安全性(增强密码策略)方面持续进化。建议后续深入学习:
-
事务控制(ACID特性)
-
存储过程与触发器开发
-
读写分离架构实践
-
分布式数据库方案(如TiDB)
本文代码已在MySQL 8.4验证通过,适用于主流云数据库(AWS RDS/AliCloud/腾讯云)。
&spm=1001.2101.3001.5002&articleId=148984667&d=1&t=3&u=c302448655274cfeb808be66e1643bff)
519

被折叠的 条评论
为什么被折叠?



