MySQL数据库的数据存储格式涉及到了三个主要表的设计、创建和数据插入,分别是学校(school)、年级(grade)和成绩结果(result),以及一个学生信息表(student)。让我们逐一详细解析这些内容。
1. **创建数据库和表结构**:
- 首先,使用 `CREATE DATABASE IF NOT EXISTS` 命令创建了一个名为 `school` 的数据库,这确保了如果数据库不存在,则会自动创建。
- 在 `school` 数据库中,我们创建了两个主要的表:`grade` 和 `result`。`grade` 表用于存储年级信息,包括 `GradeID`(主键,自增,表示年级编号)和 `GradeName`(年级名称,非空)字段。`GradeID` 采用 `INT(11)` 类型,`GradeName` 为 `VARCHAR(50)`,都是为了适应不同的数据存储需求。
- `result` 表则记录了考试成绩,包含 `StudentNo`(学号,4位整数),`SubjectNo`(考试编号,同样4位整数),`ExamDate`(考试日期,时间戳类型,不能为空),和 `StudentResult`(成绩,4位整数)等字段。`SubjectNo` 是一个唯一索引,以便快速查询特定考试记录。
2. **数据插入**:
- 对于 `grade` 表,插入了大一到大四四个年级的数据,`GradeID` 自动递增,从6开始。
- `result` 表用于记录学生的考试成绩,例如,学生1000在2019年10月21日参加了科目1和科目2的考试,并且取得了相应的成绩。
3. **`student` 表设计**:
- 最后,我们创建了 `student` 表,用于存储学生的基本信息。该表有四个字段:`StudentNo`(学号,主键),`LoginPwd`(登录密码,默认可为空),`StudentName`(学生姓名,也可为空),`Sex`(性别,用1表示男性,0表示女性,默认可为空),以及 `GradeID`(关联到 `grade` 表的年级信息,默认可为空,表明学生可能还未分配到具体年级)。
总结起来,这个示例展示了如何在MySQL数据库中使用SQL语句创建、组织和填充数据。每个表都有其特定的目的和字段设计,通过合理的数据结构,可以方便地进行数据查询和管理。理解并掌握这样的数据存储格式对于开发人员在实际项目中高效处理大量数据至关重要。