Skip to content

MySQL入门

课题目标

  • 理解 MySQL 数据库的基础概念。
  • 掌握 MySQL 的安装、配置和基本操作。
  • 学会使用 SQL 语句进行数据操作和管理。
  • 通过实践项目熟悉常见数据库应用场景。
  • 培养实习生解决实际问题的能力。

适用对象

  • 无数据库经验或 MySQL 基础薄弱的实习生。
  • 具备基本的计算机操作能力和对编程有一定兴趣。

总时长

  • 约 10-12 小时(可根据实习生进度调整,建议分 5-7 天完成)。

模块一:MySQL 安装与环境配置

目标:完成 MySQL 的安装和配置,熟悉基本操作环境。
预计耗时:1-2 小时

内容

  1. 了解 MySQL
    • 什么是关系型数据库?
    • MySQL 的特点和应用场景(如网站后台、数据分析)。
  2. 安装 MySQL
    • 根据操作系统选择合适的 MySQL 版本(推荐 MySQL Community Server)。
    • Windows:下载 MySQL Installer,安装 MySQL Server 和 MySQL Workbench。
    • macOS/Linux:使用 Homebrew(macOS)或包管理器(Linux)安装。
    • 配置 root 用户密码,了解默认端口(3306)。
  3. 验证安装
    • 启动 MySQL 服务。
    • 使用命令行(mysql -u root -p)或 MySQL Workbench 登录。
  4. 工具介绍
    • MySQL Workbench:图形化管理工具。
    • 命令行客户端:执行 SQL 语句。
    • 可选:其他工具如 phpMyAdmin 或 DBeaver。

实践任务

  1. 下载并安装 MySQL Community Server(最新稳定版)。
  2. 登录 MySQL,运行 SHOW DATABASES; 查看默认数据库。
  3. 使用 MySQL Workbench 连接数据库并浏览界面。

注意事项

  • 记录 root 用户密码,注意安全。
  • 遇到安装问题(如端口冲突、服务无法启动),参考官方文档或错误日志。

模块二:数据库与表的基础操作

目标:掌握数据库和表的创建、管理及基本操作。
预计耗时:2-3 小时

内容

  1. 数据库操作
    • 创建数据库:CREATE DATABASE my_first_db;
    • 删除数据库:DROP DATABASE my_first_db;
    • 选择数据库:USE my_first_db;
  2. 表操作
    • 表结构设计:字段、数据类型(INT, VARCHAR, DATE 等)、主键、默认值。
    • 创建表:CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), hire_date DATE);
    • 查看表结构:DESCRIBE employees;
    • 删除表:DROP TABLE employees;
  3. 数据类型与约束
    • 常见数据类型:INT, VARCHAR, DATE, DECIMAL, TEXT。
    • 约束:PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY(简单介绍)。

实践任务

  1. 创建一个名为 company 的数据库。
  2. company 数据库中创建 employees 表,包含字段:
    • id(整型,主键)
    • name(字符串,最长 50 个字符)
    • department(字符串,最长 30 个字符)
    • salary(浮点型)
  3. 使用 DESCRIBE 查看表结构,尝试删除表并重新创建。

注意事项

  • 注意数据类型的选择(如 VARCHAR 长度)。
  • 确保表名和字段名清晰、规范。

模块三:数据操作(CRUD)

目标:学会使用 SQL 语句进行数据的增删改查(CRUD)。
预计耗时:3-4 小时

内容

  1. 插入数据(Create)
    • 单行插入:INSERT INTO employees (id, name, department, salary) VALUES (1, 'Alice', 'HR', 50000);
    • 多行插入:INSERT INTO employees VALUES (2, 'Bob', 'IT', 60000), (3, 'Charlie', 'Sales', 55000);
  2. 查询数据(Read)
    • 基本查询:SELECT * FROM employees;
    • 条件查询:SELECT name, salary FROM employees WHERE department = 'IT';
    • 排序:SELECT * FROM employees ORDER BY salary DESC;
    • 聚合函数:COUNT(), SUM(), AVG(), MAX(), MIN()
  3. 更新数据(Update)
    • 更新记录:UPDATE employees SET salary = 65000 WHERE id = 2;
  4. 删除数据(Delete)
    • 删除记录:DELETE FROM employees WHERE id = 3;

实践任务

  1. employees 表插入至少 5 条记录。
  2. 执行以下查询:
    • 查询所有员工的姓名和薪资。
    • 查询薪资高于 55000 的员工。
    • 计算 IT 部门的平均薪资。
  3. 更新某员工的部门为 “Marketing”。
  4. 删除薪资最低的员工记录。

注意事项

  • WHERE 子句使用不当可能导致数据误删,需谨慎。
  • 查询结果可以通过 MySQL Workbench 导出为 CSV 文件。

模块四:进阶查询与表关系

目标:学习多表操作、连接查询和简单的索引概念。
预计耗时:2-3 小时

内容

  1. 多表设计
    • 创建 departments 表(dept_id, dept_name)。
    • 理解外键关系:employees 表中的 department_id 关联 departments.dept_id
  2. 连接查询
    • INNER JOIN:SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.department_id = d.dept_id;
    • LEFT JOIN 和 RIGHT JOIN 的区别。
  3. 索引基础
    • 什么是索引?(加快查询速度)
    • 创建索引:CREATE INDEX idx_name ON employees(name);
    • 查看索引:SHOW INDEX FROM employees;

实践任务

  1. 创建 departments 表,插入 3 个部门(HR, IT, Sales)。
  2. 修改 employees 表,添加 department_id 字段,并更新数据。
  3. 执行以下查询:
    • 使用 INNER JOIN 查询员工姓名和所在部门名称。
    • 使用 LEFT JOIN 查询所有员工(包括没有部门的员工)。
  4. employees.name 创建索引,观察查询速度变化(可选:用大表测试)。

注意事项

  • 外键关系需确保数据一致性。
  • 索引会影响插入/更新性能,需权衡使用。

模块五:综合实践项目

目标:通过一个小型项目综合运用所学知识,模拟真实场景。
预计耗时:2 小时

项目描述
设计一个简单的“图书管理系统”数据库,包含以下功能:

  • 存储图书信息(书名、作者、出版年份、价格)。
  • 存储借阅记录(借阅人、图书、借阅日期)。
  • 支持查询所有图书、特定作者的图书、借阅记录等。

任务要求

  1. 创建数据库 library 和表:
    • booksbook_id, title, author, publish_year, price)。
    • borrow_recordsrecord_id, book Inspections, borrower, borrow_date)。
  2. 插入至少 5 本图书和 3 条借阅记录。
  3. 编写以下 SQL 查询:
    • 查询所有图书,按价格降序排列。
    • 查询某作者(如 “J.K. Rowling”)的图书。
    • 查询某人借阅的图书信息(使用 JOIN)。
  4. books.author 创建索引,优化查询。

提交内容

  • 数据库设计文档(表结构、字段说明)。
  • SQL 脚本文件(包含创建表、插入数据、查询语句)。
  • 运行结果截图(MySQL Workbench 或命令行)。

注意事项

  • 确保表结构合理,字段类型合适。
  • 使用注释(如 --/* */)说明 SQL 脚本功能。

模块六:扩展与总结

目标:了解 MySQL 进阶功能,总结学习成果,为后续学习铺垫。
预计耗时:1 小时

内容

  1. 进阶功能简介(不要求掌握,仅了解):
    • 视图:CREATE VIEW view_name AS SELECT ...;
    • 存储过程:简单示例。
    • 事务:START TRANSACTION;, COMMIT;, ROLLBACK;
    • 用户权限管理:GRANT, REVOKE
  2. 性能优化基础
    • 避免全表扫描,使用 WHERE 和索引。
    • 分析查询性能:EXPLAIN SELECT ...;
  3. 总结与答疑
    • 回顾学习内容,梳理知识点。
    • 讨论常见问题(如编码问题、连接超时)。

实践任务

  1. 创建一个视图,显示所有图书的标题和价格。
  2. 尝试使用 EXPLAIN 分析一个查询的执行计划。
  3. 写一篇简短总结(200 字以内),描述学习收获和遇到的问题。

学习资源


评估与反馈

  1. 评估方式
    • 完成每个模块的实践任务,提交 SQL 脚本和运行结果。
    • 综合项目占总成绩的 50%,需提交完整代码和文档。
    • 参与课堂讨论或答疑(如有)。
  2. 反馈机制
    • 导师检查任务完成情况,提供代码优化建议。
    • 针对常见错误(如语法错误、逻辑问题)进行集体讲解。

时间安排建议

  • 第 1 天:模块一(安装与配置)
  • 第 2-3 天:模块二和三(基础操作和 CRUD)
  • 第 4-5 天:模块四(进阶查询和表关系)
  • 第 6 天:模块五(综合项目)
  • 第 7 天:模块六(扩展与总结)

注意事项

  • 实践为主:鼓励实习生多动手操作,遇到问题查文档或提问。
  • 循序渐进:确保每个模块的任务完成后才进入下一模块。
  • 错误处理:记录常见错误(如连接失败、语法错误)并分享解决方法。
  • 环境要求:建议使用 Windows/macOS/Linux,安装 MySQL 8.x 版本。

这个课题设计旨在通过结构化的学习路径和实践任务,帮助实习生快速上手 MySQL,同时培养解决问题的能力。如果需要更详细的某模块内容、示例代码或调整课程难度,请告诉我!

Credit @Wayne19980