小项目——MySQL集训(学生成绩录入)

ddl语句

 
-- 创建学生信息表
CREATE TABLE students (student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',name VARCHAR(50) NOT NULL COMMENT '学生姓名',gender ENUM('男', '女') NOT NULL COMMENT '性别',class VARCHAR(50) NOT NULL COMMENT '班级',registration_date DATE COMMENT '注册日期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';-- 创建科目表
CREATE TABLE subjects (subject_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '科目ID',subject_name VARCHAR(100) NOT NULL UNIQUE COMMENT '科目名称',teacher_name VARCHAR(100) COMMENT '教师姓名'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='科目信息表';-- 创建成绩表
CREATE TABLE scores (score_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '成绩ID',student_id INT NOT NULL COMMENT '学生ID',subject_id INT NOT NULL COMMENT '科目ID',score DECIMAL(5, 2) NOT NULL COMMENT '成绩',exam_date DATE COMMENT '考试日期',FOREIGN KEY (student_id) REFERENCES students(student_id) ON DELETE CASCADE,FOREIGN KEY (subject_id) REFERENCES subjects(subject_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成绩表';-- 创建成绩分析表(可选,用于存储分析结果)
CREATE TABLE score_analysis (analysis_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '分析ID',subject_id INT NOT NULL COMMENT '科目ID',avg_score DECIMAL(5, 2) NOT NULL COMMENT '平均分',max_score DECIMAL(5, 2) NOT NULL COMMENT '最高分',min_score DECIMAL(5, 2) NOT NULL COMMENT '最低分',analysis_date DATE COMMENT '分析日期',FOREIGN KEY (subject_id) REFERENCES subjects(subject_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成绩分析表';-- 创建系统配置表(可选,用于存储系统相关配置信息)
CREATE TABLE system_config (config_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '配置ID',config_key VARCHAR(100) NOT NULL UNIQUE COMMENT '配置键',config_value VARCHAR(255) COMMENT '配置值',description TEXT COMMENT '配置描述'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置表';

 dml语句

INSERT INTO students (name, gender, class, registration_date) VALUES
('张三', '男', '一班', '2023-09-01'),
('李四', '女', '二班', '2023-09-02'),
('王五', '男', '三班', '2023-09-03'),
('赵六', '女', '四班', '2023-09-04'),
('孙七', '男', '五班', '2023-09-05');
INSERT INTO subjects (subject_name, teacher_name) VALUES
('数学', '张老师'),
('英语', '李老师'),
('物理', '王老师'),
('化学', '赵老师'),
('生物', '孙老师');
INSERT INTO scores (student_id, subject_id, score, exam_date) VALUES
(1, 1, 85.50, '2023-10-15'), -- 张三的数学成绩
(1, 2, 90.25, '2023-10-15'), -- 张三的英语成绩
(2, 1, 78.75, '2023-10-15'), -- 李四的数学成绩
(2, 2, 88.00, '2023-10-15'), -- 李四的英语成绩
(5, 5, 92.00, '2023-10-15'); -- 孙七的生物成绩
INSERT INTO score_analysis (subject_id, avg_score, max_score, min_score, analysis_date) VALUES
(1, 82.38, 90.50, 75.00, '2023-10-17'), -- 数学成绩分析
(2, 86.75, 92.00, 80.00, '2023-10-17'), -- 英语成绩分析
(5, 89.25, 95.00, 85.00, '2023-10-17'); -- 生物成绩分析
INSERT INTO system_config (config_key, config_value, description) VALUES
('school_name', '阳光中学', '学校名称'),
('admin_email', 'admin@example.com', '管理员电子邮箱'),
('exam_schedule_url', 'https://example.com/exam-schedule', '考试安排网址');

 效果图

 

 

 

 

 增删改查语句

一、增(插入数据)

二、删(删除数据)

三、改(更新数据)

改之前

 运用的MySQL语句为

UPDATE scores set score=95 where subject_id = 5;

 改完之后是

四、查(查询数据)

运用到的MySQL语句是

SELECT config_value from system_config;

 多表联合查询

所用到的MySQL语句是

select students.`name` , scores.score 
from students
JOIN scores on students.student_id = scores.student_id
where scores.student_id = 1;

 效果图

触发器

-- 触发器名称:after_user_insert-- 触发时机:AFTER INSERT
DELIMITER $$  -- 更改默认的语句分隔符为$$,这样可以在触发器内部使用分号
CREATE TRIGGER after_user_insert  -- 创建一个名为after_user_insert的触发器
AFTER INSERT ON students  -- 触发器在students表发生INSERT操作之后触发
FOR EACH ROW  -- 触发器对每一行插入操作都执行一次
BEGIN  -- 触发器开始INSERT INTO scores (subject_id , score )  -- 在scores表中插入一行数据VALUES ( NEW.subject_id, 2) ; 
END;  -- 触发器结束
$$  -- 触发器定义结束,使用新的分隔符
DELIMITER ;  -- 将语句分隔符改回为分号

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

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

相关文章

Redis实战—基于setnx的分布式锁与Redisson

本博客为个人学习笔记,学习网站与详细见:黑马程序员Redis入门到实战 P56 - P63 目录 分布式锁介绍 基于SETNX的分布式锁 SETNX锁代码实现 修改业务代码 SETNX锁误删问题 SETNX锁原子性问题 Lua脚本 编写脚本 代码优化 总结 Redisson 前言…

基于STM32的温湿度检测TFT屏幕proteus恒温控制仿真系统

一、引言 本文介绍了一个基于STM32的恒温控制箱检测系统,该系统通过DHT11温湿度传感器采集环境中的温湿度数据,并利用TFT LCD屏幕进行实时显示。通过按键切换页面显示,通过按键切换实现恒温控制箱的恒温控制。为了验证系统的可靠性和稳定性&…

png格式快速压缩该怎么做?在电脑压缩png图片的方法

png格式的图片如何快速压缩变小呢?现在网络的不断发展,图片是日常用来分享展示内容的一种常用手段,其中使用最多的一种图片格式就是png,png格式具有无损压缩支持透明底的特性,在很多的场景下都会使用。 现在图片的清晰…

Arduino - 线性执行器(支撑或滑杆)

Arduino - 线性执行器(支撑或滑杆) Arduino - 执行器 In this tutorial, we are going to learn: 在本教程中,我们将学习: How linear actuator works 线性执行器的工作原理How to make linear actuator extend or retract. 如何使线性执行器伸展或缩…

百元蓝牙耳机哪款性价比高?盘点性价比高的百元蓝牙耳机品牌

在如今快节奏的生活中,蓝牙耳机已经成为人们日常生活中不可或缺的配件。然而,市面上百元左右性价比高的蓝牙耳机琳琅满目,消费者往往难以选择到一款质量好、耐用的产品。我们希望可以为广大消费者提供一些参考和建议,接下来&#…

基于51单片机电子称—串口显示

基于51单片机电子称设计 (仿真+程序) 功能介绍 具体功能: 1.矩阵键盘组成按键,输入价格结算、打印; 2.用滑动变阻器和ADC0832模拟称重; 3.LCD1602可以显示重量、单价和总价; 4.…

家用洗地机十大品牌什么牌子好用?2024十大爆款洗地机分享

在快节奏的生活中,清洁家居成为了一项繁琐却必不可少的任务。而洗地机的出现,无疑给忙碌的都市人带来了福音。选择一款优质的洗地机可以大大提升我们清洁的效率,改善我们的生活品质。那么,哪家洗地机清洁力最强,更适合…

ONLYOFFICE 桌面编辑器 8.1 版发布:全面提升文档处理效率的新体验

文章目录 什么是ONLYOFFICE ?ONLYOFFICE 桌面编辑器 8.1 发布:新功能和改进功能强大的 PDF 编辑器幻灯片版式功能从右至左语言支持多媒体功能增强无缝切换工作模式其他改进和优化总结 什么是ONLYOFFICE ? https://www.onlyoffice.com/zh/off…

JavaScript的学习之图片的切换

目录 一、寻找素材 二、编写简单的静态html页面 代码示例 效果展示 三、JS功能的实现 JS代码 完整代码 效果展示 一、寻找素材 随便去网上找几张图片素材 二、编写简单的静态html页面 代码示例 <!doctype html> <html><head><meta charset"…

svn明明都在环境变量中添加了,但还是无法在cmd中生效

svn明明都在环境变量中添加了&#xff0c;但还是无法在cmd中生效 cmd显示原因问题解决 cmd显示 svn不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件 原因 安装svn一直点下一步下一步…&#xff0c;没有勾选command line client。 问题解决 1.按下winx&…

如何加密电脑文件?电脑重要文件怎么加密?

在电脑中&#xff0c;我们会存储很多重要文件&#xff0c;包括个人隐私视频、照片&#xff0c;企业机密数据&#xff0c;工作数据等。为了避免重要文件泄露&#xff0c;我们需要加密保护电脑文件。下面我们就来了解一下电脑文件怎么加密&#xff1f; 超级加密3000 当需要加密电…

vue 实现 word/excel/ppt/pdf 等文件格式预览操作

效果图&#xff1a; 问题描述&#xff1a;一般情况下使用iframe标签就可以实现文件预览&#xff0c;但是这个标签只针对于ppt和pdf是有效的。对于doc文件就需要借助第三方插件&#xff08;vue-office/docx&#xff09;来实现预览了。下面介绍使用方法。 安装插件&#xff1a;n…

力扣爆刷第155天之TOP100五连刷41-45(下一个排列、正序数组中位数、归并排序链表)

力扣爆刷第155天之TOP100五连刷41-45&#xff08;下一个排列、正序数组中位数、归并排序链表&#xff09; 文章目录 力扣爆刷第155天之TOP100五连刷41-45&#xff08;下一个排列、正序数组中位数、归并排序链表&#xff09;一、31. 下一个排列二、4. 寻找两个正序数组的中位数三…

量化交易策略:定义及其重要性

量化交易是华尔街和硅谷的秘密结合点&#xff0c;在这里数学和算法与金钱和市场相遇。虽然它曾经是金融巨头的专属领域&#xff0c;但现在它比以往任何时候都更易于接触。 但不要被愚弄&#xff0c;量化交易仍然是一种高速、高压的游戏&#xff0c;在毫秒间可以赚到或失去财富…

STM32CubeIDE复制工程文档

目录 1. 粘贴复制2. 重命名 1. 粘贴复制 复制粘贴 重命名&#xff0c;别重名&#xff0c;点击- copy 结果 2. 重命名 重命名 ioc文件 编译 OK

IDEA 安装与激活详细教程最新(附最新激活码)2099年亲测有效!

我们先从 IDEA 官网下载 IDEA 2024.1 版本的安装包&#xff0c;下载链接如下&#xff1a; https://www.jetbrains.com/idea/download/ 点击下载(下载Ultimate版)&#xff0c;静心等待其下载完毕即可。 激活方式&#xff1a; 正版专属激活码领取

手机越用越慢?试试这4个秘籍,让手机流畅如新

智能手机作为日常生活的得力助手&#xff0c;最初总是以惊人的速度和流畅性给我们留下深刻印象。 但你有没有发现&#xff0c;随着时间的推移&#xff0c;手机似乎开始变得不那么敏捷&#xff0c;甚至出现了反应迟缓和卡顿的情况&#xff1f; 别让这个问题困扰你,下面是四个关…

Linux关闭swap分区操作[适用于CDH报警等]

1.查看swap分区挂载路径(没卵用) swapon -s 2.设置配置文件的swap配置 echo “vm.swappiness 0” > /etc/sysctl.conf 3.设置内存中的swap状态。有时候配置文件为0&#xff0c;但集群或服务仍然使用了swap分区&#xff0c;可能原因就是内存没有同步配置 echo “0” > …

step5:“串口设置”逻辑(下)

文章目录 文章介绍效果图SerialPort.qml代码v1代码v2代码v3 文章介绍 文章qml/c&#xff1a;基础界面的“串口设置”逻辑1实现了 1、串口连接&#xff0c;连接成功的弹窗提示 2、读取数据。 本篇文章需要实现的功能是 1&#xff09;接收数据后更新“已接收”的行数 效果图 Se…

文本分类-RNN-LSTM

1.前言 本节介绍RNN和LSTM&#xff0c;并采用它们在电影评论数据集上实现文本分类&#xff0c;会涉及以下几个知识点。 1. 词表构建&#xff1a;包括数据清洗&#xff0c;词频统计&#xff0c;词频截断&#xff0c;词表构建。 2. 预训练词向量应用&#xff1a;下载并加载Glove的…