本节以教育管理系统为例来介绍数据库的创键和数据表的设计
案例需求:
1.教务管理系统用来帮助高校学生选修课程。
2.学生可以通过系统查看所有选修课的相关信息,包括课程名,学时,学分,也可以查看相关授课老师的信息。
3.老师的信息包括教师姓名,性别,学历,职称,还可以通过系统查看自己的考试成绩。
4.老师通过系统可以查看选修自己课程的学生信息,包括学号,性别,姓名,出生日期,班级,也可以通过系统录入学生的考试成绩。
用Widows10控制命令行做数据库!
第一步:创建"教务管理系统"的数据库!
第二步:根据案例要求创建相关数据表
1.创建学生MySQL数据表
①创建学生信息表
学生信息表
序号 | 列名 | 数据类型 | 允许空值 | 约束 | 备注 |
1 | stnum | char(8) | NO | 主键 | 学号 |
2 | stname | varchar(10) | NO | 姓名 | |
3 | stgender | char(2) | YES | 性别 | |
4 | stbrith | date | YES | 出生日期 | |
5 | stclass | varchar(20) | YES | 班级 |
②根据"学生信息表"撰写MySQL数据表
2.创建教师MySQL数据表
①创建教师信息表
教师信息表
序号 | 列名 | 数据类型 | 是否允许空值 | 约束 | 备注 |
1 | teanum | char(8) | NO | 主键 | 教工号 |
2 | teaname | varchar(20) | NO | 教师姓名 | |
3 | teagender | char(2) | NO | 性别 | |
4 | teaacademic | vrchar(20) | NO | 学历 | |
5 | teaprofessional | varchar(8) | YES | default"副教授" | 职称 |
②根据"教师信息表"撰写MySQL数据表
3..创建课程MySQL数据表
①创建课程信息表
课程信息表
序号 | 列名 | 数据类型 | 是否允许为NULL值 | 约束 | 备注 |
1 | counum | char(4) | NO | 主键 | 课程号 |
2 | couname | varchar(40) | YES | 唯一约束 | 课程名 |
3 | coutime | int (50) | YES | 学时 | |
4 | coucredit | Decimal(3.1) | NO | 学分 | |
5 | couteacher | char(4) | NO | 是教师表的外键 | 授课教师 |
②根据"课程信息表"撰写MySQL数据表
4.创建选课信息表
①创建选课信息表
选课信息表
序号 | 列名 | 数据类型 | 是否允许为空值 | 约束 | 备注 |
1 | counum | char(4) | NO | 主键/课程表的外键 | 课程号 |
2 | stnum | char(8) | NO | 主键/学生表的外键 | 学号 |
3 | source | int | NO | 成绩 |
②根据"课程信息表"撰写MySQL数据表
第三步:检验"教务管理系统"数据库创建结果
①检验数据库创建结果:
②检查数据表
③检查外键
通过select*from information_schema.KEY_COLUMN_USAGE;这条命令查询数据库中所有表的外键和主键