SQL案例-高校信息管理系统实现要求

news2025/1/18 19:07:50

SQL案例-高校信息管理系统实现要求

(1) 建表

stuInfo(学生信息表)

字段名称数据类型说明
stuName字符学生姓名,该列必填,要考虑姓氏可能是两个字的,如欧阳俊雄
stuNo字符学号,该列必填,学号不能重复,且必须是S253XX格式
stuSex字符学生性别,该列必填,且只能是“男”或“女”。因为男生较多,默认为“男”
stuAge数字学生年龄,该列必填,必须在15~50岁之间
stuSeat数字学生的座位号,不用人工输入,采用自动编号方式,且必须是1~30号
stuAddress文本学生地址,该列可不填,如没有填写,默认为“地址不详”

stuMarks(学生成绩表)

字段名称数据类型说明
examNo字符考号,该列必填,且不能重复,必须是E200507XXXX格式
stuNo字符学号 ,该列必填,且必须在学生基本信息表中有相关记录
writtenExam数字学生笔试成绩,数据必须是0~100分之间,不填默认为0分
labExam数字学生机试成绩,数据必须是0~100之间,不填默认为0分

(2) 加约束

(3) 建关系

(4) 插入数据

插入数据时注意:

  1. 其中有一名学员的地址不详,因此请将其中一名学生的地址设为空
  2. 有一名学员机试缺考,因此他的机试成绩请设为空
  3. 有一名学员因病,所有的考试都没有参加.

数据样板

在这里插入图片描述

建表

create table stuinfo(
    stuName varchar2(40) not null,
    stuNo varchar2(10) primary key 
        constraint CK_stuNo check(stuNo like 'S253__'),
    stuSex varchar2(2) default '男'
        constraint CK_stuSex check(stuSex in('男','女')),
    stuAge int
        constraint CK_stuAge check(stuAge between 15 and 30),
    stuSeat int
        constraint CK_stuSeat check(stuSeat between 1 and 30),   --要求座位号只能在1-30之间,超过30从1开始重新自增
    stuAddress varchar2(100) default '地址不详'
);

create table stuMarks(
    examNo varchar2(20) not null
         constraint CK_examNo check(examNo like 'E200507____'),
    stuNo varchar2(10) not null
         constraint FK_sNo references stuInfo(stuNo),
    writtenExam Numeric(5,2) default 0
         constraint CK_we check(writtenExam between 0 and 100),
    labExam Numeric(5,2) default 0
         constraint CK_le check(labExam between 0 and 100)
);

-- 序列定义
create sequence seq_stuinfo_stuSeat start with 1 increment by 1 maxvalue 30 cycle cache 10;

-- 触发器  获取插入的最新序列值
create or replace trigger tri_stuinfo
before insert on stuinfo
for each row
begin
    select seq_stuinfo_stuSeat.nextval into :new.stuSeat from dual;
end;


数据插入

insert into stuInfo values('张秋丽','S25301','男',18,1,'湖南衡阳');
insert into stuInfo values('李斯文','S25303','女',22,1,'河南洛阳');
insert into stuInfo values('李文才','S25302','男',20,1,default);
insert into stuInfo values('欧阳俊雄','S25304','男',28,1,'新疆威武哈');
insert into stuInfo values('张丽','S25306','男',18,1,'北京海淀');

insert into stuMarks(ExamNo,stuNo,writtenExam,LabExam) values('E2005070001','S25301',80,58);
insert into stuMarks(ExamNo,stuNo,writtenExam) values('E2005070002','S25302',50);
insert into stuMarks(ExamNo,stuNo,writtenExam,LabExam) values('E2005070003','S25303',97,82);

select * from stuInfo;

每人的笔试成绩都提5分

update stuMarks set writtenexam = writtenexam+5 where writtenexam <= 95;

100分封顶(加分后超过100分的,按100分计算)

case when then 实现

update stuMarks set wittenExam = 
	(case when wittenExam + 5 >100 then 100 else wittenExam + 5  end )

cursor 实现

declare
   cursor cur_smks is select * from stuMarks for update
begin
  for v_smks in cur_smks loop
      if v_smks.wittenExam + 5 > 100 then
         update stuMarks set writtenexam = 100 where current of cur_smks;
      else
         update stuMarks set writtenexam = writtenexam+5 where current of cur_smks;
      end if;
  end loop;
end;   

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

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

相关文章

AC规则-4-规则和冲突解决

3.3 Introduction to Access Control Rule Conflict Resolution 3.3 访问控制规则冲突解决简介 本节从高层次讨论访问控制规则冲突解决。 本文档稍后会提供更多详细信息。 规则的优先级不是基于它在其他规则中的阅读顺序。 管理冲突规则的策略基于三个基本原则&#xff08;…

linux中 list_entry 设计背景及原理解析

Linux 2.4.22 在这一版本中的 list_entry的宏定义实现如下&#xff1a; #define list_entry(ptr, type, member) \((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))乍一看&#xff0c;会觉得特别复杂&#xff0c;其实分析之后&#xff0c;会发现清晰…

LeetCode高频算法刷题记录8

文章目录 1. 零钱兑换【中等】1.1 题目描述1.2 解题思路1.3 代码实现 2. 最小栈【最小栈】2.1 题目描述2.2 解题思路2.3 代码实现 3. 最长有效括号【困难】3.1 题目描述3.2 解题思路3.3 代码实现 4. 从前序与中序遍历序列构造二叉树【中等】4.1 题目描述4.2 解题思路4.3 代码实…

day8 域名解析与http服务器实现原理

域名解析gethostbyname函数 主机结构在 <netdb.h> 中定义如下 结构的成员包括&#xff1a; h_name &#xff1a;主机的正式名称 h_aliases&#xff1a;主机的备用名称数组&#xff0c;以 NULL 结尾指针 h_addrtype&#xff1a;地址类型;&#xff08;AF_INET或AF_INET…

基础知识6

知乎上的面试题&#xff1a;https://zhuanlan.zhihu.com/p/546032003 一、Topk问题以及变种&#xff0c;各种解法 微博的热门排行就属于 TopK 问题 TopK 一般是要求在 N 个数的集合中找到最小或者最大的 K 个值&#xff0c;通常 N 都非常得大。 算法的优点是不用在内存中读入全…

经典组件知识(kafka,ngix)

消息队列的作用 解耦、削峰、 异步&#xff08;非必要逻辑异步运行&#xff0c;加快响应速度&#xff09; kafka 首先有个topic的概念&#xff0c;类似于表。 Partition 分区&#xff1a;一个topic下面有多个分区&#xff0c;这些分区会存储到不同的服务器上面&#xff0c;或者…

如何使用 Django 进行测试驱动开发,我来告诉你

所谓测试驱动开发(TDD)&#xff0c;就是先编写测试用例&#xff0c;然后编写代码来满足测试用例&#xff0c;具体包含以下步骤&#xff1a; 编写测试用例。编写代码满足测试用例中的需求。运行测试用例。如果通过&#xff0c;说明代码满足了测试用例所定义的需求。如果未通过&…

armday2

.text .global _start _start: bl LED1_INITbl LED1_ONbl delay_1sbl LED1_OFFbl LED2_INITbl LED2_ONbl delay_1sbl LED2_OFFbl LED3_INITbl LED3_ONbl delay_1sbl LED3_OFFbl _start/**********LED1点灯PE10**************/ LED1_INIT:1.通过RCC_HB4_ENSETR寄存器设置GPIOE组…

PoseiSwap:为何青睐 Layer3?又为何选择 Celestia 作为技术伙伴?

自 PoseiSwap 在 Nautilus Chain 上线后&#xff0c;该 DEX 的整体市场进展十分顺利。我们看到&#xff0c;其不仅在 4 月&#xff0c;以 1000万美元的估值&#xff0c; 获得了来自于 Zebec Labs 的首轮 150 万美元的融资。而在本月&#xff0c;在 Zebec 生态的帮助下&#xff…

利用prusa 3d打印地形模型 如何合理切片并提高打印速度

如上图&#xff0c;我们选择打印一个宽10cm 的地形模型&#xff0c;通过prusa切片&#xff0c;显示时间为22小时31分钟。这个速度大概一天&#xff0c;确实不是我们要的速度&#xff0c;如何提高速度又不失去打印细节且不增加失败风险呢。 1.减少填充 10%的填充对于创想三维en…

RK3568平台开发系列讲解(驱动基础篇)RK平台UART的使用

🚀返回专栏总目录 文章目录 一、引脚定义1.1 UART91.2 RS232和RS485二、设备树配置三、调试3.1 连接硬件3.2 打开主机的串口终端3.3 板子发送数据3.4 板子接收数据3.5 主机退出kermit串口连接四、UART2普通串口配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇…

C++——模板初阶

文章目录 一.泛型编程二.函数模板1.函数模板的概念2.函数模板的格式3.函数模板的原理4.函数模板的实例化&#xff08;1&#xff09;隐式实例化&#xff08;2&#xff09;显式实例化 5.模板参数的匹配原 三.类模板1.类模板的定义格式2.类模板的实例化 前言&#xff1a; 本章我们…

Flutter问题记录 - Text组件设置不限行数无效

文章目录 前言开发环境问题描述问题分析解决方案最后 前言 梳理Flutter项目的过程中发现还有一些遗留的TODO没处理&#xff0c;其中有一个和Text组件相关。 开发环境 Flutter: 3.7.12Dart: 2.19.6 问题描述 Text组件设置maxLines: null不限制行数&#xff1a; Text(The […

gradio入门示例

随着chat-gpt等机器人对话框架的流行&#xff0c;让一个名为gradio的框架也火热起来&#xff0c;这个框架可以开启一个http服务&#xff0c;并且带输入输出界面&#xff0c;可以让对话类的人工智能项目快速运行。 gradio号称可以快速部署ai可视化项目。 下面通过两个示例来感受…

C++学习记录——이십사 位图、布隆过滤器、哈希切割

文章目录 1、位图位图应用优缺点 2、布隆过滤器1、哈希函数2、删除 3、哈希切割应用 本篇gitee 1、位图 先看一个题目&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个树是否在这40亿个数中&#xff1f; 这里可能…

《面试1v1》线程池

我是 javapub&#xff0c;一名 Markdown 程序员从&#x1f468;‍&#x1f4bb;&#xff0c;八股文种子选手。 面试官&#xff1a; 你好&#xff0c;很高兴见到你。请问你对线程池有什么了解&#xff1f; 候选人&#xff1a; 你好&#xff0c;我对线程池非常了解。线程池是一种…

前后端联调统一校验规则

文章目录 统一校验实现1.什么是统一校验2.统一校验的实现&#xff08;1&#xff09;引入依赖&#xff08;2&#xff09;基于注解&#xff08;3&#xff09;使用案例【1】定义校验规则【2】开启校验【3】统一异常处理器捕获校验产生的异常 3.分组校验(1)定义公共的校验分组(2)定…

完全自主研发,聚芯微发布3D dToF图像传感器芯片!

日前&#xff0c;由中国半导体行业协会IC设计分会&#xff08;ICCAD&#xff09;、芯原股份、松山湖管委会主办的主题为“AR/VR/XR元宇宙”的“2023松山湖中国IC创新高峰论坛”正式在广东东莞松山湖召开。武汉市聚芯微电子有限责任公司发布了完全自主知识产权的3D dToF图像传感…

Spring面试整理

什么是Spring&#xff1f; Spring的优缺点&#xff1f; Spring的模块组成 Spring框架中使用了哪些设计模式&#xff1f; 详细讲解下核心容器&#xff08;Spring context&#xff09;模块 Spring框架中有哪些不同类型的组件 Spring控制反转&#xff08;IOC&#xff09; 什…

由浅入深Dubbo核心源码剖析SPI机制

目录 1 SPI的概述1.1 SPI的主要作用1.2 入门案例1.3 总结 2 Dubbo中的SPI2.1 概述2.2 入门案例2.3 源码分析 3 SPI中的IOC和AOP3.1 依赖注入3.2 动态增强 4 动态编译4.1 SPI中的自适应4.2 javassist入门4.3 源码分析 1 SPI的概述 在 Dubbo 中&#xff0c;SPI 是一个非常重要的模…