学生信息管理系统(简化版)数据库部分

news2025/2/23 22:23:09

使用Mysql,与navicat工具

下面是mysql创建的代码,可做必要修改

-- 创建学生学籍信息表
CREATE TABLE StudentEnrollment (
    -- 学号,作为主键
    student_id VARCHAR(8) NOT NULL,
    -- 学生姓名
    stu_name VARCHAR(8) NOT NULL,
    -- 学生性别
    gender VARCHAR(6) NOT NULL,
    -- 学生班级
    class_ VARCHAR(20) NOT NULL,
    -- 学生出生日期,存储格式为字符串
    birth_date VARCHAR(80) NOT NULL,
    -- 学生所在学校
    school VARCHAR(200) NOT NULL,
    -- 设置学号为主键
    PRIMARY KEY (student_id)
) COMMENT='学生学籍信息表';

-- 创建班级信息表
CREATE TABLE ClassInfo (
    -- 班级班号,作为主键
    class_id VARCHAR(40) NOT NULL,
    -- 班级排名
    cls_rank VARCHAR(40) NOT NULL,
--     班级班主任
    head_teacher VARCHAR(40) NOT NULL,
    -- 班级学生总数
    student_count INT NOT NULL,
    PRIMARY KEY (class_id)
) COMMENT='班级信息表';

-- 创建学生成绩信息表
CREATE TABLE StudentScores (
    -- 学号,作为主键
    student_id VARCHAR(8) NOT NULL,
    -- 学生姓名
    stu_name VARCHAR(8) NOT NULL,
    -- 学生总成绩
    total_score INT NOT NULL,
    -- 学生分数排名
    score_rank INT NOT NULL,
    -- 学生所在班级
    class_ VARCHAR(20) NOT NULL,
    -- 设置学号为主键
    PRIMARY KEY (student_id)
) COMMENT='学生成绩信息表';

-- 添加外键约束,将学生成绩信息表的学号字段与学生学籍信息表的学号字段关联
ALTER TABLE StudentScores
ADD CONSTRAINT fk_student_id
FOREIGN KEY (student_id) REFERENCES StudentEnrollment(student_id);


-- 

-- 插入班级信息
INSERT INTO ClassInfo (class_id, cls_rank, head_teacher, student_count) VALUES
('ClassA', '1', 'TeacherA', 10),
('ClassB', '2', 'TeacherB', 10),
('ClassC', '3', 'TeacherC', 10);

-- 为ClassA插入学生学籍信息
INSERT INTO StudentEnrollment (student_id, stu_name, gender, class_, birth_date, school) VALUES
('A01', 'Alice', 'Female', 'ClassA', '2002-01-01', '海南师范大学'),
('A02', 'Bob', 'Male', 'ClassA', '2002-02-02', '海南师范大学'),
('A03', 'Charlie', 'Male', 'ClassA', '2002-03-03', '海南师范大学'),
('A04', 'Diana', 'Female', 'ClassA', '2002-04-04', '海南师范大学'),
('A05', 'Ethan', 'Male', 'ClassA', '2002-05-05', '海南师范大学'),
('A06', 'Fiona', 'Female', 'ClassA', '2002-06-06', '海南师范大学'),
('A07', 'George', 'Male', 'ClassA', '2002-07-07', '海南师范大学'),
('A08', 'Hannah', 'Female', 'ClassA', '2002-08-08', '海南师范大学'),
('A09', 'Ivan', 'Male', 'ClassA', '2002-09-09', '海南师范大学'),
('A10', 'Julia', 'Female', 'ClassA', '2002-10-10', '海南师范大学');

-- 为ClassA的学生插入成绩信息
INSERT INTO StudentScores (student_id, stu_name, total_score, score_rank, class) VALUES
('A01', 'Alice', 90, 1, 'ClassA'),
('A02', 'Bob', 85, 2, 'ClassA'),
('A03', 'Charlie', 88, 3, 'ClassA'),
('A04', 'Diana', 92, 4, 'ClassA'),
('A05', 'Ethan', 82, 5, 'ClassA'),
('A06', 'Fiona', 87, 6, 'ClassA'),
('A07', 'George', 91, 7, 'ClassA'),
('A08', 'Hannah', 84, 8, 'ClassA'),
('A09', 'Ivan', 89, 9, 'ClassA'),
('A10', 'Julia', 86, 10, 'ClassA');

-- 为ClassB插入学生学籍信息
INSERT INTO StudentEnrollment (student_id, stu_name, gender, class_, birth_date, school) VALUES
('B01', '赵天宇', '男', 'ClassB', '2003-01-01', '海南师范大学'),
('B02', '钱晓晓', '女', 'ClassB', '2003-02-02', '海南师范大学'),
('B03', '孙丽丽', '女', 'ClassB', '2003-03-03', '海南师范大学'),
('B04', '李强', '男', 'ClassB', '2003-04-04', '海南师范大学'),
('B05', '周梅', '女', 'ClassB', '2003-05-05', '海南师范大学'),
('B06', '吴刚', '男', 'ClassB', '2003-06-06', '海南师范大学'),
('B07', '郑洁', '女', 'ClassB', '2003-07-07', '海南师范大学'),
('B08', '王磊', '男', 'ClassB', '2003-08-08', '海南师范大学'),
('B09', '陈静', '女', 'ClassB', '2003-09-09', '海南师范大学'),
('B10', '郭阳', '男', 'ClassB', '2003-10-10', '海南师范大学');

-- 为ClassB的学生插入成绩信息
INSERT INTO StudentScores (student_id, stu_name, total_score, score_rank, class) VALUES
('B01', '赵天宇', 85, 1, 'ClassB'),
('B02', '钱晓晓', 88, 2, 'ClassB'),
('B03', '孙丽丽', 82, 3, 'ClassB'),
('B04', '李强', 90, 4, 'ClassB'),
('B05', '周梅', 87, 5, 'ClassB'),
('B06', '吴刚', 84, 6, 'ClassB'),
('B07', '郑洁', 89, 7, 'ClassB'),
('B08', '王磊', 86, 8, 'ClassB'),
('B09', '陈静', 83, 9, 'ClassB'),
('B10', '郭阳', 80, 10, 'ClassB');

-- 为ClassC插入学生学籍信息
INSERT INTO StudentEnrollment (student_id, stu_name, gender, class_, birth_date, school) VALUES
('C01', '萧炎', '男', 'ClassC', '2004-01-01', '海南师范大学'),
('C02', '云韵', '女', 'ClassC', '2004-02-02', '海南师范大学'),
('C03', '美杜莎', '女', 'ClassC', '2004-03-03', '海南师范大学'),
('C04', '药老', '男', 'ClassC', '2004-04-04', '海南师范大学'),
('C05', '小医仙', '女', 'ClassC', '2004-05-05', '海南师范大学'),
('C06', '萧薰儿', '女', 'ClassC', '2004-06-06', '海南师范大学'),
('C07', '纳兰嫣然', '女', 'ClassC', '2004-07-07', '海南师范大学'),
('C08', '海波东', '男', 'ClassC', '2004-08-08', '海南师范大学'),
('C09', '紫妍', '女', 'ClassC', '2004-09-09', '海南师范大学'),
('C10', '林修崖', '男', 'ClassC', '2004-10-10', '海南师范大学');

-- 为ClassC的学生插入成绩信息
INSERT INTO StudentScores (student_id, stu_name, total_score, score_rank, class_) VALUES
('C01', '萧炎', 92, 1, 'ClassC'),
('C02', '云韵', 88, 2, 'ClassC'),
('C03', '美杜莎', 90, 3, 'ClassC'),
('C04', '药老', 87, 4, 'ClassC'),
('C05', '小医仙', 85, 5, 'ClassC'),
('C06', '萧薰儿', 91, 6, 'ClassC'),
('C07', '纳兰嫣然', 89, 7, 'ClassC'),
('C08', '海波东', 86, 8, 'ClassC'),
('C09', '紫妍', 84, 9, 'ClassC'),
('C10', '林修崖', 83, 10, 'ClassC');

-- 创建视图
-- 创建视图
CREATE VIEW StudentScoresWithTotalRank AS
SELECT
    student_id,  -- 学号
    stu_name,  -- 姓名
    total_score,  -- 总成绩
    RANK() OVER (ORDER BY total_score DESC) AS score_rank,  -- 总分排名
    class_  -- 班级
FROM StudentScores;  -- 从学生成绩表中选择数据

SELECT * FROM StudentScoresWithTotalRank;

DROP VIEW StudentScoresWithTotalRank;


DELETE FROM StudentScores
WHERE student_id = 'A01';

INSERT INTO StudentScores (student_id, stu_name, total_score, score_rank, class_) VALUES
('A02', 'Aliasae', 99, 1, 'ClassA');


CREATE VIEW ViewStudentEnrollment AS
SELECT *
FROM StudentEnrollment;

SELECT *
FROM ViewStudentEnrollment;


CREATE VIEW ViewClassInfo AS
SELECT *
FROM ClassInfo;

SELECT * FROM ViewClassInfo;

DROP VIEW IF EXISTS ViewClassInfo;

-- 修改 StudentEnrollment 表的 class_ 字段,使其数据类型与 ClassInfo 表的 class_id 字段匹配
ALTER TABLE StudentEnrollment MODIFY class_ VARCHAR(40);

-- 添加外键约束
ALTER TABLE StudentEnrollment
ADD CONSTRAINT fk_class FOREIGN KEY (class_) REFERENCES ClassInfo(class_id);

-- 班级表视图
CREATE VIEW ViewClassInfo AS
SELECT
    CI.class_id,
    CI.cls_rank,
    CI.head_teacher,
    COUNT(SE.class_) AS student_count
FROM
    ClassInfo CI
LEFT JOIN StudentEnrollment SE ON CI.class_id = SE.class_
GROUP BY
    CI.class_id,
    CI.cls_rank,
    CI.head_teacher;
    
SELECT * FROM ViewClassInfo;

前端链接:学生信息管理系统(简化版)-CSDN博客

后端接口链接:学生信息管理系统(简化版)后端接口-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2256650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图生3d 图生全景 学习笔记

目录 instantsplat Aluciddreamer ZoeDepth 会自动下载模型: 图生全景图SD-T2I-360PanoImage: instantsplat Sparse-view SfM-free Gaussian Splatting in Seconds 稀疏视图无SfM高斯喷洒 GitHub - NVlabs/InstantSplat: InstantSplat: Sparse-vi…

PHP:将数据传递给Grid++Report模板进行打印

模板参考 这里使用的模板test111.grt参照进行生成 ,需要确保字段对应才能将数据进行传递 GridReport:自定义模板设计(自由表格使用),详细教程-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/144315191?spm10…

【C#】新建窗体文件,Form、UserControl

从用途、功能性和架构方面进行描述。 1. 继承自 Form 的窗体(通常是窗口): 在 C# 中,Form 是用于创建应用程序的主窗口或对话框窗口的类。当您继承自 Form 时,您创建的是一个完整的窗口,可以显示内容、与…

Ubuntu22.04搭建LAMP环境(linux服务器学习笔记)

目录 引言: 一、系统更新 二、安装搭建Apache2 1.你可以通过以下命令安装它: 2.查看Apache2版本 3.查看Apache2运行状态 4.浏览器访问 三、安装搭建MySQL 1.安装MySQL 2.查看MySQL 版本 3.安全配置MySQL 3.1是否设置密码?(按y|Y表…

小尺寸低功耗蓝牙模块在光伏清扫机器人上的应用

一、引言 随着可再生能源的迅速发展,光伏发电系统的清洁与维护变得越来越重要。光伏清扫机器人通过自动化技术提高了清洁效率,而蓝牙模组的集成为这些设备提供了更为智能的管理和控制方案。 二、蓝牙模组的功能与实现: 蓝牙模组ANS-BT103M…

通过linux命令获取自选股票价格及大盘涨跌幅

技术发展与数据获取需求 互联网与金融数据融合:随着互联网的普及和金融市场的数字化发展,金融数据的获取和分析变得更加便捷和重要。投资者希望能够及时、准确地获取股票价格和市场指数等信息,以便做出合理的投资决策。Linux 作为一种强大的操作系统,为数据获取和处理提供…

Linux 远程连接服务

远程连接服务器简介 什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操 作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。 远程连接服务器的功…

Spring Boot中实现JPA多数据源配置指南

本文还有配套的精品资源,点击获取 简介:本文详细介绍了在Spring Boot项目中配置和使用JPA进行多数据源管理的步骤。从引入依赖开始,到配置数据源、创建DataSource bean、定义实体和Repository,最后到配置事务管理器和使用多数据…

Ubuntu22.04深度学习环境安装【显卡驱动安装】

前言 使用Windows配置环境失败,其中有一个包只有Linux版本,Windows版本的只有python3.10的,所以直接选用Linux来配置环境,显卡安装比较麻烦,单独出一期。 显卡驱动安装 方法一:在线安装(操作…

数智运营一体化平台项目经营分享

分离前后台,增强产品管理灵活性 前端成熟的流程平台,支持低代码快速灵活配置流程表单,完美解决流程频繁变化与快速上线、费用控制的矛盾。使产品管理体系,摆脱了流程可移植性差和投入大量人力物力无止境修改流程的困境。同时&…

UE5 猎户座漂浮小岛 09 移动能力 角色属性

UE5 猎户座漂浮小岛 09 移动能力 角色属性(1) 1.移动能力 1.1 加速跑 BlendSpace:混合空间 2.角色属性 2.1 行动点数 AP:Action Point Max AP:Max Action Point AP CPS:Action Point Consume Per Sec…

LeetCode---426周赛

题目列表 3370. 仅含置位位的最小整数 3371. 识别数组中的最大异常值 3372. 连接两棵树后最大目标节点数目 I 3373. 连接两棵树后最大目标节点数目 II 一、仅含置位位的最小整数 题目要求我们返回二进制数位全为1,且大于 n 的最小的整数,我们可以直…

HTML笔记()蜘蛛纸牌之卡牌拖拽

效果 代码 <!DOCTYPE html> <html><head><style>body{display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #2b2b2b;position: relative;}.card{/*设置卡牌的外观*/width: 150px;height: 200px;background-…

基于springboot校园生活服务平台源码和论文

可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C、python、数据可视化、大数据、文案 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一…

C++ 数组与字符串全解析:从基础到应用

目录 数组和字符串 &#xff08;一&#xff09;数组&#xff08;在 C 中&#xff09; 1.一维数组 2.二维数组 &#xff08;二&#xff09;C - style 字符串 &#xff08;三&#xff09;C string 类 数组和字符串 &#xff08;一&#xff09;数组&#xff08;在 C 中&…

Git常用的命令【提交与回退】

git分布式版本控制系统 &#xff08;SVN集中式版本控制系统&#xff09;之间的对比 git有本地仓库和远程仓库&#xff0c;不同的开发人员可以分别提交自己的本地仓库并维护代码的版本控制。 然后多个人员在本地仓库协作的代码&#xff0c;可以提交到远程仓库中做整合。 git本…

JAVA秋招面试题精选-第一天总结

目录 分栏简介&#xff1a; 问题一&#xff1a;订单表每天新增500W条数据&#xff0c;分库分表应该怎么设计&#xff1f; 问题难度以及频率&#xff1a; 问题导向&#xff1a; 满分答案&#xff1a; 举一反三&#xff1a; 问题总结&#xff1a; 问题二&#xff1a;解释…

C—初阶结构体

若是阁下满意的话&#xff0c;能否一键三连呢&#xff01;&#xff01;&#xff01;&#xff01; 结构体基础知识&#xff1a; 概念&#xff1a;结构体是一些值的集合&#xff0c;这些值称为变量&#xff0c;变量可以是不同类型 这里我们再想一下之前的数组&#xff0c;数组是一…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

JS学习(1)(基本概念与作用、与HTML、CSS区别)

目录 一、JavaScript是什么&#xff1f; &#xff08;1&#xff09;基本介绍 &#xff08;2&#xff09;简称&#xff1a;JS&#xff1f; 二、JavaScript的作用。 三、HTML、CSS、JS之间的关系。 &#xff08;1&#xff09;html、css。 &#xff08;2&#xff09;JavaScript。 …