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

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.mfbz.cn/a/22994.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法|1.二分及其扩展

算法|1.二分及其扩展 1、有序数组中找到num 题意&#xff1a;给定有序数组&#xff0c;在有序数组中找到指定数字&#xff0c;找到返回true&#xff0c;找不到返回false. 解题思路&#xff1a; 数组有序查找指定元素使用二分法L指针初始值设为0&#xff0c;R指针初始值设为…

IOC初始化 IOC启动阶段 (Spring容器的启动流程)

[toc](IOC初始化 IOC启动阶段 (Spring容器的启动流程)) IOC初始化 IOC启动阶段 (Spring容器的启动流程) Resource定位过程&#xff1a;这个过程是指定位BeanDefinition的资源&#xff0c;也就是配置文件&#xff08;如xml&#xff09;的位置&#xff0c;并将其封装成Resource对…

拥抱新时代的Java

原文链接 拥抱新时代的Java Java作为面向对象编程的王牌语言&#xff0c;曾经风靡一时&#xff0c;在Web领域是绝对的老大。随着时间的推移&#xff0c;一些新的编程范式不断的涌现&#xff0c;如函数式编程&#xff0c;响应式编程&#xff0c;以及对函数的全力支持&#xff0…

node.js+vue房屋租赁管理系统z0g8w

本系统主要包括以下功能模块&#xff1a;租户、出租人、房源信息、预约看房、合同信息等模块。 其中设计的主要功能如下&#xff1a; &#xff08;1&#xff09;用户的注册和登录本系统&#xff0c;登录到系统的首页。 &#xff08;2&#xff09;用户可以发布自己的房源信息…

强化学习:值迭代和策略迭代

值迭代 通过上一章的学习&#xff0c;我们知道了贝尔曼最优方程的求解实际上分两部分&#xff0c;一是给定一个初始值 v k v_k vk​ 找到最优策略 π k 1 π_{k1} πk1​ &#xff0c;二是更新 v k 1 v_{k1} vk1​   下面&#xff0c;我们将详细剖析这个算法&#xff0…

RabbitMQ

处理问题 服务异步调用 两个服务调用时&#xff0c;我们可以通过传统的HTTP方式&#xff0c;让服务A直接去调用服务B的接口&#xff0c;但是这种方式是同步的方式&#xff0c;虽然可以采用SpringBoot提供的Async注解实现异步调用&#xff0c;但是这种方式无法确保请求一定回访…

从Redisson的RedissonSemaphore引发的信号量实际含义的思考

Semaphore到底该如何使用 事情的起因是最近在看redisson的源码&#xff0c;刚好看到了RedissonSemaphore的acquire/release实现。 public RFuture<Void> releaseAsync(int permits) {if (permits < 0) {throw new IllegalArgumentException("Permits amount ca…

ThingsBoard教程(五十):规则节点解析 创建关系节点Create Relation Node,删除关系节点 Delete Relation Node

创建关系节点 Create Relation Node Since TB Version 2.2.1 根据类型和方向,从所选实体创建到消息发起方的关系。 以下消息发起方类型被允许:资产、设备、实体视图、客户、租、仪表板。 通过元数据键模式查找目标实体,然后在源实体和目标实体之间创建关系。 如果选择的…

ASP.NET Core 使用Filter和Redis实现接口防重

背景 日常开发中&#xff0c;经常需要对一些响应不是很快的关键业务接口增加防重功能&#xff0c;即短时间内收到的多个相同的请求&#xff0c;只处理一个&#xff0c;其余不处理&#xff0c;避免产生脏数据。 这和幂等性&#xff08;idempotency&#xff09;稍微有点区别&am…

每日一练 | 网络工程师软考真题 Day12

阅读以下说明&#xff0c;答复以下【问题1】至【问题3】 【说明】 某单位有1个总部和6个分部&#xff0c;各个部门都有自己的局域网。该单位申请了6个C类IP地址202.115.10.0/24~202.115.15.0/24&#xff0c;其中总部与分部4共用一个C类地址。现方案将这些部门用路由器互联&…

Mit6.006-problemSet03

3-1 哈希练习&#xff08;Hash Practice&#xff09; (a) 按顺序插入整数keys A[47, 61, 36, 52, 56, 33, 92]到尺寸为7的哈希表中&#xff0c;使用哈希函数 h ( k ) ( 10 k 4 ) m o d 7 h(k)(10k4)mod7 h(k)(10k4)mod7。哈希表的每个插槽&#xff0c;存储一个key&#xff…

字节真的是宇宙尽头吗?

身边在字节的朋友很多人抱怨很卷&#xff0c;但卷到何种程度?很多人没有直观感受。某乎上一个问题(在字节跳动工作是怎样的?)点赞排名第一的回答生动的解释了字节的卷。 租房的舍友在字节工作。 舍友主卧&#xff0c;我次卧。 合租两个月了&#xff0c;我没见过舍友长什么样。…

日语文法PPT截图31-45

31 形式名词 とき ところ 作为形式名词的话&#xff0c;一般是要写假名不写汉字的 相对时态 如果是一般时/将来时とき&#xff0c;就是先做后面的动作&#xff0c;在做前面的动作。 出教室的时候&#xff0c;关灯。 如果是过去时とき那么&#xff0c;是先做前面的动作&#…

【dfn序+DP】树

把一棵树转化成一个序列有三种方法&#xff1a; dfs序 dfn序&#xff08;时间戳&#xff09; 欧拉序 关于这三者的区别&#xff0c;参考这篇博客&#xff0c;讲的超级好&#xff01; 重谈DFS序、时间戳和欧拉序 - Seaway-Fu - 博客园 (cnblogs.com) 题意&#xff1a; 思路…

SVN 导出改动差异文件

文章目录 SVN 导出改动差异文件应用场景/背景介绍具体操作方法 SVN 导出改动差异文件 应用场景/背景介绍 当然下面的两个场景介绍可能用分支管理都会有不错的效果&#xff0c;或者更优&#xff0c;只是记录一下思路&#xff0c;用什么还是看大家个人爱好啦 在开发过程中偶尔会…

1. Ansible介绍,什么是Ansible?Ansible能用来做什么?

什么是Ansible&#xff1f;Ansible能用来做什么&#xff1f; 如果您是系统工程师或IT管理员,或者只是在IT部门工作的任何人,您可能会在环境中执行大量重复性任务, 无论是每天调整大小和创建新主机或虚拟机&#xff64; 在其上应用配置&#xff64; 修补数百台服务器&#xff6…

不用再找了,你要的国内好用的ChatGPT网站都在这里

&#x1f4a1; 大家好&#xff0c;我是可夫小子&#xff0c;关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加&#xff1a;keeepdance&#xff0c;备注&#xff1a;chatgpt&#xff0c;拉你进群。 目录 ChatGPT是什么 OpenAI与ChatGPT的发展历程 AI对话聊天 AI文档…

jdk13至15——文本块特性

文本块在jdk13中第一次预览&#xff0c;jdk14第二次预览&#xff0c;jdk15正式版&#xff1b; 终于不用在多行字符串中加一堆\n和一堆\"和一堆了&#xff1b; 之前需要这么麻烦&#xff1a; Testvoid test() {String s "testabcd\n" "aaa\n" "…

AI:Vue2和Vue3的对比

1. 什么是Vue.js以及Vue.js在前端开发中的重要性。 Vue.js是一个遵循MVVM&#xff08;Model-View-ViewModel&#xff09;模式的前端JavaScript框架&#xff0c;它采用了双向数据绑定和组件化的思想&#xff0c;使得前端开发变得更加简洁、高效、可维护。Vue.js由中国工程师尤雨…

JNDI学习笔记

最近在研究JNDI注入漏洞&#xff0c;就先浅浅的学习以下JNDI相关知识。 JNDI对各种目录服务的实现进行抽象和统一化。 在 Java 应用中除了以常规方式使用名称服务(比如使用 DNS 解析域名)&#xff0c;另一个常见的用法是使用目录服务作为对象存储的系统&#xff0c;即用目录服务…
最新文章