Mysql学习之表结构设计、索引、外键与数据插入

本文介绍了如何设计一个高中学校管理系统的数据库,包括年级、班级、学生和成绩四个主要表的结构,强调了表之间的关联,如年级与班级、班级与学生、学生与成绩的关系,并提供了SQL文件的下载链接,帮助读者理解和实践。
摘要由CSDN通过智能技术生成

需求:

  在一个高中里有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&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值