需求:
在一个高中里有3个年级,每个年级有n个班级,每个班级有m个学生,
每个学生有学号、姓名、性别,每个学生有不同科目的成绩。
分析:
有年级、班级、学生的基本信息、科目、学生的科目成绩,
年级与班级关联、班级与学生关联、学生与成绩关联、成绩与科目关联
建立年级表、班级表、学生表、成绩表、科目表
sql文件下载链接: https://pan.baidu.com/s/1pMW9ZQV 密码: xev5
创建数据库
推荐使用gui工具(如Navicat for MySQL)直接创建数据库,当然,你也可以直接通过命令行创建数据库
我们先创建数据库名为 school 的数据库并设置编码格式为utf-8,以下是命令行(如用GUI工具可直接操作)
CREATE DATABASE `school` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
创建数据库表
建立完数据库后,我们需要创建数据库表:年级表 grade、班级表 clazz、学生表 student、科目表 subject 和成绩表 score
创建年级表 grade
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`grade_id` int(10) NOT NULL,
`grade_name` varchar(10) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `grade_id` (`grade_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
创建班级表
clazz
DROP TABLE IF EXISTS `clazz`;
CREATE TABLE `clazz` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`clazz_id` int(10) NOT NULL,
`grade_id` int(10) NOT NULL,
`clazz_name` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `clazz_id` (`clazz_id`) USING BTREE,
KEY `grade_id` (`grade_id`) USING BTREE,
CONSTRAINT `grade_id` FOREIGN KEY (`grade_id`) REFERENCES `grade` (`grade_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
创建学生表 student
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student&