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

使用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
SELECTstudent_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
SELECTCI.class_id,CI.cls_rank,CI.head_teacher,COUNT(SE.class_) AS student_count
FROMClassInfo CI
LEFT JOIN StudentEnrollment SE ON CI.class_id = SE.class_
GROUP BYCI.class_id,CI.cls_rank,CI.head_teacher;SELECT * FROM ViewClassInfo;

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新手上路,学Go还是Python

对于新手来说,Go和Python都是很好的编程语言,它们各有特点,以下是详细的对比来帮助你决定先学哪一个: 一、语法和学习难度 Python 语法简洁易懂:Python以其简洁、优雅的语法而闻名,代码的可读性很高。例如…

信号处理:概念、应用、领域、方法

信号处理是一个广泛的领域,涉及对各种类型信号(如音频信号、图像信号、生物信号、通信信号等)的分析、操作和变换。信号处理的主要目标是获取有用信息、增强信号质量、消除噪声、提取特征以及实现数据 compression等。信号处理可以分为模拟信…

Socket编程-tcp

1. 前言 在tcp套接字编程这里,我们将完成两份代码,一份是基于tcp实现普通的对话,另一份加上业务,client输入要执行的命令,server将执行结果返回给client 2. tcp_echo_server 与udp类似,前两步&#xff1…

go语言的sdk项目搭建与git 操作标签tag并推送至远程仓库

在搭建 SDK 项目并结合 Git 操作标签(Tag)时,通常会涉及项目初始化、版本管理、Git 标签的创建与管理等内容。以下是一个完整的步骤指南,帮助您搭建 SDK 项目并学习如何使用 Git 标签。 ### 1. **搭建 SDK 项目** 首先&#xff…

Android13 USB 串口默认授权

一)场景需求 项目中使用到了can协议控制车机功能,can 直接转串口,用USB转串口工具 cn.wch.uartlib 来实现. can 板子通过usb 插入到机器上面,那就是usb 协议了。 遇到问题: 插入can 板的usb 到机器上后,直…

【数据库】E-R模型、函数依赖、范式

2. 东方货运公司数据库的样本数据如下。 表名称:卡车 车号 货运站编号 类型 总行程 购入日期 1001 501 1 59002.7 11/06/2000 1002 502 2 54523.8 11/08/2000 1003 501 2 32116.6 09/29/2001 1004 502 2 3256.9 …

保姆级教学 uniapp绘制二维码海报并保存至相册,真机正常展示图片二维码

一、获取二维码 uni.request({url: https://api.weixin.qq.com/wxa/getwxacode?access_token${getStorage("token")},responseType: "arraybuffer",method: "POST",data: {path: "/pages/index/index"},success(res) {// 转换为 Uint…

JAVA安全—SpringBoot框架MyBatis注入Thymeleaf模板注入

前言 之前我们讲了JAVA的一些组件安全,比如Log4j,fastjson。今天讲一下框架安全,就是这个也是比较常见的SpringBoot框架。 SpringBoot框架 Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提…

【数据结构】动态规划-基础篇

针对动态规划问题,我总结了以下5步: 确定dp数组以及下标的含义; 递推公式; dp数组如何初始化; 遍历顺序; 打印dp数组(用来debug); 以上5步适用于任何动态规划问题&#x…

十一、容器化 vs 虚拟化-Docker 使用

文章目录 前言一、Docker Hello World二、Docker 容器使用三、Docker 镜像使用四、Docker 容器连接五、Docker 仓库管理六、Docker Dockerfile七、Docker Compose八、Docker Machine九、Swarm 集群管理 前言 Docker 使用‌ Docker 容器使用、镜像使用、容器连接、仓库管理、Do…

Java-22 深入浅出 MyBatis - 手写ORM框架3 手写SqlSession、Executor 工作原理

点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatis&#xff…

EasyPlayer.js播放器如何在iOS上实现低延时直播?

随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。 那么要在iOS上…

OpenAI深夜官宣!为期十二天的圣诞惊喜活动发布AI模型大招!Sora、满血o1和高级语音或将发布

OpenAI深夜官宣!为期十二天的圣诞惊喜活动发布AI模型大招!Sora、满血o1和高级语音或将发布 大家好,我是猫头虎😺,今天我们来聊聊最近科技圈的大新闻——OpenAI 深夜官宣的圣诞惊喜活动!这次 OpenAI 的动作…

【JAVA高级篇教学】第二篇:使用 Redisson 实现高效限流机制

在高并发系统中,限流是一项非常重要的技术手段,用于保护后端服务,防止因流量过大导致系统崩溃。本文将详细介绍如何使用 Redisson 提供的 RRateLimiter 实现分布式限流,以及其原理、使用场景和完整代码示例。 目录 一、什么是限流…

leetcode_547 省份数量

该题主要运用了图的连通性 接着使用染色法解决该问题 染色法:标记所有节点为false 访问后 将其标记位true class Solution {int n; // 代表n个数据bool colors[201]; // 标记是否访问到void dfs(vector<vector<int>>& isConnected, int u) { // …

多系统对接的实现方案技术分析

前言 随着信息化和大数据时代的到来&#xff0c;数据资产变得至关重要&#xff0c;企业纷纷上线多种软件系统和移动端应用以适应这一变化。这些系统和应用虽然发挥了各自的优势&#xff0c;但也导致了信息孤岛问题。为了解决这一问题&#xff0c;数据中台和异构系统集成技术应…

基于SpringBoot的“滴答拍摄影项目”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“滴答拍摄影项目”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 滴答拍摄影项目结构图 管理员登录首页界面图 用…

攻防世界安卓刷题笔记(新手模式)1-4

1.基础android 进入后是这样的页面。查看源代码看看。首先要注意这个软件并没有加壳&#xff0c;所以我们可以直接着手分析。搜索错误提示“Failed”定位到关键代码&#xff0c;看样子就是检验输入的内容 注意到这里有一行关键代码&#xff0c;cond_39对应的正是failed那个地方…

PHP保存base64编码图片,图片有一部分是灰色块儿,原因和解决办法

文章目录 场景原因解决方案完整的代码前端代码php代码 场景 我有个需求&#xff0c;移动端h5上传多张的图片。用input file可以上传多张&#xff0c;但是现在照片体积越来越大&#xff0c;同时上传多张会因为体积过大&#xff0c;导致上传失败。如果是小程序会好很多&#xff…

nvm安装指定版本显示不存在及nvm ls-remote 列表只出现 iojs 而没有 node.js 解决办法

在使用 nvm install 18.20.3 安装 node 时会发现一直显示不存在此版本 Version 18.20.3 not found - try nvm ls-remote to browse available versions.使用 nvm ls-remote 查看可安装列表时发现&#xff0c;列表中只有 iojs 解决方法&#xff1a; 可以使用以下命令查看可安装…