MySQL课程设计——浅易学生信息管理体系

打印 上一主题 下一主题

主题 555|帖子 555|积分 1665

一 分析

1.1 体系需求分析

1.1.1 业务分析

学生信息管理体系时面向学生和学校教师的一个多功能数据管理平台。
1.1.2 分析体系

本体系所设计到的用户有学校在校学生、教师,对于不同的用户体系所提供给的功能也有所不同,其中对于学生来说,学生可以通过该体系进行学生基本信息查询、测验成绩查询、选修课程查询、住宿基本信息查询,修改自身部分基本信息,教师可以通过该体系实现对自身数据查询、学生成绩管理等。
1.2 功能模块

1.2.1 学生模块

学生是整个体系的使用者,学生可以通过该体系进行学生基本信息查询、测验成绩查询、选修课程查询、住宿基本信息查询,修改自身部分基本信息。
1.2.2 教师模块

教师是整个体系的使用者,教师可以通过该体系实现对自身数据查询、学生成绩管理等,修改自身部分基本信息。
二 构建模型

2.1 概念模型:ERP模型

学生信息管理体系是学生信息进行一体化管理的体系,它提供了学生学生基本信息管理、课程管理、成绩管理、住宿基本信息管理的功能,因此本体系所对应的实体就有学生、教师、课程、成绩、住宿,该体系的E-R图如下图所示。

2.2 数据模型:设计表格

2.2.1 将ERP模型转化为关系模式

按照将E-R图转换为关系模式的规则,将上图所示E-R图转换,得到的关系模式为:
学生(学号,姓名,年岁,院系,专业,住址)
教师(教师编号,教师姓名,教师年岁,教师职位,课程编号)
课程(课程编号,课程名称,开始时间,结束时间)
成绩(成绩编号,学生学号,课程编号,课程名称,学生成绩)
住宿(公寓编号,公寓名称,公寓校区,公寓楼层)
对上述关系模式进行以下优化。“教师”关系中的“教师职位”会出现大量的数据冗余,为了更好体现教师职位和教师之间的关联关系,可以进行拆分成一个职位表;可分出一个“职位”关系,包含“职位编号”和“职位名称”等属性,将“教师”关系中的“教师职位”属性改为“职位编号”。优化后的关系模式为:
学生(学号,姓名,年岁,院系,专业,住址)
教师(教师编号,教师姓名,教师年岁,职位编号,课程编号)
课程(课程编号,课程名称,开始时间,结束时间)
成绩(成绩编号,学生学号,课程编号,课程名称,学生成绩)
住宿(公寓编号,公寓名称,公寓校区,公寓楼层)
职位(职位编号,职位名称)
2.2.2 设计表格

(1)学生实体(学生学号,学生姓名,学生年岁,地点院系,学生专业,学生住址)用于记载保存体系使用用户(学生)的基本信息;该表设计如表2.1所示。
   2.1 学生表  字段名数据类型长度是否主键说明stu_idint14是学生表主键stu_namevarchar12否学生姓名stu_ageint2否学生年岁stu_departmentvarcahr10否地点院系stu_majorvarcahr10否学生专业addressvarcahr255否学生住址 (2)教师实体(教师编号,教师姓名,教师年岁,职位编号,课程编号)用于记载保存体系使用用户(教师)的基本信息;该表设计如表2.2所示。
   2.2 教师表  字段名数据类型长度是否主键说明t_idint16是教师表主键t_namevarchar12否教师姓名t_ageint2否教师年岁p_idint16否职位编号course_idint16否课程编号 (3)课程实体(课程编号,课程名称,开始时间,结束时间)用于记载保存体系使用用户(学生)的课程信息;该表设计如表2.3所示。
   2.3 课程表  字段名数据类型长度是否主键说明c_idint16是课程表主键c_namevarchar12否课程名称start_timedate否开始时间end_timedate否结束时间 (4)成绩实体(成绩编号,学生学号,课程编号,课程名称,学生成绩)用于记载保存体系使用用户(学生)的成绩信息;该表设计如表2.4所示。
   2.4 成绩表  字段名数据类型长度是否主键说明score_idint16是成绩表主键s_idint16否学生学号c_idint16否课程编号c_namevarchar12否课程名称scoreint3否课程成绩 (5)住宿实体(公寓编号,公寓名称,公寓校区,公寓楼层)用于记载保存体系使用用户(学生)的住宿信息;该表设计如表2.5所示。
   2.5 住宿表  字段名数据类型长度是否主键说明apartment_idint16是住宿表主键apartment_namevarchar12否公寓名称apartment_campusvarchar8否公寓校区apartment_floorint2否公寓楼层 (6)职位实体(职位编号,职位名称)用于记载保存体系使用用户(教师)的职位信息;该表设计如表2.6所示。
   2.6 职位表  字段名数据类型长度是否主键说明position_idint16是职位表主键position_namevarchar12否职位名称 三 创建表格

3.1 学生表创建

  1. 在这create table student
  2. (
  3. ​    stu_id  int(14) not null primary key auto_increment comment '学生表主键',
  4. ​    stu_name  varchar(12) comment '学生姓名',
  5. ​    stu_age  int(2) comment '学生年龄',
  6. ​    stu_department  varchar(10) comment '所在院系',
  7. ​    stu_major  varchar(10) comment '学生专业',
  8. ​    address  varchar(255) comment '学生住址'
  9. ) character set utf8;
复制代码
3.2 教师表创建

  1. create table teacher
  2. (
  3. ​    t_id  int(16) not null primary key auto_increment comment '教师表主键',
  4. ​    t_name  varchar(12) comment '教师姓名',
  5. ​    t_age  int(2) comment '教师年龄',
  6. ​    p_id  int(16) comment '职位编号',
  7. ​    course_id  int(16) comment '课程编号'
  8. ) character set utf8;
复制代码
3.3 课程表创建

  1. create table course
  2. (
  3. ​    c_id  int(16) not null primary key auto_increment comment '课程表主键',
  4. ​    c_name  varchar(12) comment '课程名称',
  5. ​    start_time  date comment '开始时间',
  6. ​    end_time  date comment '结束时间'
  7. ) character set utf8;
复制代码
3.4 成绩表创建

  1. create table score
  2. (
  3. ​    score_id  int(16) not null primary key auto_increment comment '创建表主键',
  4. ​    s_id  int(16) comment '学生学号',
  5. ​    c_id  int(16) comment '课程编号',
  6. ​    c_name  varchar(12) comment '课程名称',
  7. ​    score  int(3) comment '课程成绩'
  8. ) character set utf8;
复制代码
3.5 住宿表创建

  1. create table apartment
  2. (
  3. ​    apartment_id  int(16) not null primary key auto_increment comment '住宿表主键',
  4. ​    apartment_name  varchar(12) comment '公寓名称',
  5. ​    apartment_campus  varchar(8) comment '公寓校区',
  6. ​    apartment_floor  int(2) comment '公寓楼层'
  7. ) character set utf8;
复制代码
3.6 职位表创建

  1. create table position
  2. (
  3. ​    position_id  int(16) not null primary key auto_increment comment '职位表主键',
  4. ​    position_name  varchar(12) comment '职位名称'
  5. ) character set utf8;
复制代码
四 插入数据

4.1 学生表数据添加

  1. INSERT INTO student (stu_id, stu_name, stu_age, stu_department, stu_major, address)
  2. VALUES (101, '张三', 18, '计算机', '软件工程', '湖北武汉'),
  3. ​        (102, '李四', 21, '文新', '汉语言', '湖南长沙')
复制代码
4.2 教师表数据添加

  1. INSERT INTO teacher (t_id, t_name, t_age, p_id, course_id)
  2. VALUES (201, '张三', 31, 601, 301),
  3. ​       (202, '李四', 32, 602, 602)
复制代码
4.3 课程表数据添加

  1. INSERT INTO course (c_id, c_name, start_time, end_time)
  2. VALUES (301, 'Java', '2022-03-15', '2022-06-15'),
  3. ​        (302, 'Python', '2021-09-16', '2021-12-16')
复制代码
4.4 成绩表数据添加

  1. INSERT INTO score (score_id, s_id, c_id, c_name, score)
  2. VALUES (401, 101, 301, 'Java', 95),
  3. ​       (402, 102, 302, 'Python', 87)
复制代码
4.5 住宿表数据添加

  1. INSERT INTO apartment (apartment_id, apartment_name,
  2. apartment_campus, apartment_floor)
  3. VALUES (501, '楷苑', '龙山校区', 6),
  4. ​       (502, '桃苑', '龙山校区', 12);
复制代码
4.6 职位表数据添加

  1. INSERT INTO position (position_id, position_name)
  2. VALUES (601, '讲师'),
  3. ​       (602, '教授')
复制代码
五 维护数据

5.1 查询学生全部信息

  1. select * from student;
复制代码

5.2 查询老师全部信息

  1. select * from teacher;
复制代码

5.3 查询选课了Java科目标学生信息

  1. select s.*,sc.score,c.c_name
  2. from student s
  3. ​         join score sc on s.stu_id = sc.s_id
  4. ​         join course c on sc.c_id = c.c_id where c.c_name='Java';
复制代码

5.4 对应科目标老师信息

  1. select t.*, c.c_id, c.c_name
  2. from teacher t
  3. ​         join course c on t.course_id = c.c_id;
复制代码

5.5 查询学号为102的学生选择Python课程

  1. select s.*, c.c_name
  2. from student s
  3. ​         join score sc on s.stu_id = sc.s_id
  4. ​         join course c on sc.c_id = c.c_id
  5. where s.stu_id = 102
  6.   and c.c_name = 'Python';
复制代码

5.6 查询年岁大于20岁的学生信息

  1. select *
  2. from student
  3. where stu_age > 20;
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表