# MySQL_Learn **Repository Path**: trigger333/my-sql_-learn ## Basic Information - **Project Name**: MySQL_Learn - **Description**: 在练习SQL时一直找不到合适的数据源,所以创建了此项目。里面提供了一些脚本用来创建 一个电商数据库以及添加模拟数据。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-06 - **Last Updated**: 2025-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MySQL学习项目说明 ## 项目目的 **在练习SQL时一直找不到合适的数据源,所以创建了此项目。** 本项目旨在帮助学习者系统地学习和掌握 MySQL 数据库的相关知识和技能。通过实际操作和练习,学习者可以深入理解 MySQL 数据库的基本概念、操作方法和高级特性,从而能够独立进行数据库的设计、开发和维护工作。 ## 如何使用 ### 环境准备 1. **安装 MySQL**:从 MySQL 官方网站下载MySQL 安装程序。按照安装向导的提示完成安装过程。 2. **安装 MySQL 客户端**:可以选择使用 MySQL 自带的命令行客户端,也可以使用第三方客户端工具,如 MySQL Workbench、Navicat 等。 ### 项目结构 本项目包含以下主要部分: - **SQL 文件**:包含各种 SQL 脚本,用于创建数据库、表,插入数据,以及执行各种查询操作。 - **文档**:提供项目的说明文档和学习资料。 # 已完结 ## 锁相关 元数据锁练习 : sql/lock order by Demo :sql/orderbyDemo # 待更新项目 **sql 下的文件说明。** ecommerce_db.sql 创建所有的表; generate_data.sql 创建存储过程; execute_procedures.sql 执行存储过程; (如果需要模拟大量数据,调整入参即可) sql_exercises.sql 一些sql的练习 电商数据库设计文件(ecommerce_db.sql)和数据生成脚本(generate_data.sql)的主要内容。 电商数据库包含12个表,涵盖用户、商品、订单、支付、物流等核心模块,表间通过外键关联。 数据生成脚本包含10个存储过程,用于生成模拟数据,包括用户、商品、订单等,每个存储过程都考虑了业务逻辑和随机性。 要理清多张表之间的关系,建议: 1) 先绘制ER图可视化表结构; 2) 分析主外键约束; 3) 通过示例数据理解业务逻辑; 4) 编写简单查询验证关系。 可以从核心业务表开始,逐步扩展到周边表。 explain 分析执行计划: 重点关注 type : 分为 system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_merge,unique_key,range,index,all 主要是以下几种,性能由高到低。 system: 系统表,只包含一行记录,用于返回系统信息,如当前时间、服务器版本等。 const: 常量表,只包含一行记录,用于返回常量值,如1、'hello'等。 eq_ref: 等值引用,表示通过索引查找到唯一的行。 ref: 引用,表示通过索引查找到多行。 range: 范围查找,表示通过索引查找到范围内的行。 index: 索引查找,表示通过索引查找到多行。 all: 全表扫描,表示全表查找,效率较低。