SQL-----STUDENT

【学生信息表】

【宿舍信息表】

【宿舍分配表】

为了相互关联,我们需要在表中添加外键。在宿舍分配表中添加用于关联学生信息表的外键 student_id,以及用于关联宿舍信息表的外键 dormitory_id

sql代码

-- 创建学生信息表 
CREATE TABLE students( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学生ID', name VARCHAR(30) NOT NULL COMMENT '学生姓名', student_number VARCHAR(20) NOT NULL COMMENT '学号', gender VARCHAR(2) NOT NULL COMMENT '学生性别', grade VARCHAR(4) NOT NULL COMMENT '年级', major VARCHAR(30) NOT NULL COMMENT '专业', phone_number VARCHAR(20) DEFAULT NULL COMMENT '联系方式' 
); -- 创建宿舍信息表 
CREATE TABLE `dormitories` ( `id` INT NOT NULL AUTO_INCREMENT COMMENT '宿舍ID', `building` VARCHAR(20) NOT NULL COMMENT '所属的楼栋', `room_number` VARCHAR(20) NOT NULL COMMENT '房间号', `capacity` INT NOT NULL COMMENT '容纳人数', PRIMARY KEY (`id`) 
) COMMENT='宿舍信息表'; -- 创建宿舍分配表 
CREATE TABLE dormitory_assignments(  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '分配记录ID',  student_id INT NOT NULL COMMENT '学生ID',  dormitory_id INT NOT NULL COMMENT '宿舍ID',  grade VARCHAR(4) NOT NULL COMMENT '年级', major VARCHAR(30) NOT NULL COMMENT '专业',  check_in_time DATETIME DEFAULT NULL COMMENT '入住时间',  check_out_time DATETIME DEFAULT NULL COMMENT '退房时间',  FOREIGN KEY (student_id) REFERENCES students(id),  FOREIGN KEY (dormitory_id) REFERENCES dormitories(id)  
);  

插入示例:

【学生信息表】
插入一条学生信息,学号为 20230001,姓名为 张三,性别为 男,年级为 2,专业为 计算机科学与技术,联系方式为 13412345678: 


INSERT INTO students (name, student_number, gender, grade, major, phone_number)  
VALUES ('张三', '20230001', '男', '2', '计算机科学与技术', '13412345678');  

 【宿舍信息表】
插入一条宿舍信息,楼栋为 2 号楼,房间号为 101,容纳人数为 2:

INSERT INTO dormitories (building, room_number, capacity)  
VALUES ('2 号楼', '101', 2);  

【宿舍分配表】
插入一条宿舍分配记录,学生 ID 为 1,宿舍 ID 为 1,年级为 2,专业为 计算机科学与技术,入住时间为 2023-09-01,退房时间为 2024-02-28:

INSERT INTO dormitory_assignments (student_id, dormitory_id, grade, major, check_in_time, check_out_time)  
VALUES (1, 1, '2', '计算机科学与技术', '2023-09-01', '2024-02-28');  

注意:

在进行宿舍分配时,如果发现目标宿舍已经达到了容纳人数上限,则应该停止当前的分配操作,不再继续分配该宿舍。

% 连接 MySQL 数据库 
conn = database(database_name, user_name, password, 'com.mysql.cj.jdbc.Driver', url); % 查询宿舍的容纳人数和当前入住人数 
sql_query = ['SELECT da.capacity, COUNT(*) FROM dormitory_assignments AS da '... 'WHERE da.dormitory_id = ' num2str(dormitory_id) ' GROUP BY da.dormitory_id;']; 
results = exec(conn, sql_query); % 读取查询结果 
results = fetch(results); 
current_number = results.Data{1,2}; 
capacity = results.Data{1,1}; % 判断宿舍是否已满 
if current_number >= capacity disp('该宿舍已经满员,无法分配!'); return; 
end 

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

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

相关文章

key的性能保障,事件处理器,表单控件等介绍

4-2key设置-性能的保障 不能修改原数组的方法,如果想要修改原数组,就进行重新赋值 this.items this.items.filter((item) > item.message.match(/Foo/)) keyCode键的值**key设置-性能的保障**提高性能,可以对比老的虚拟dom,一样的就留着,不一样就补上Vue默认按照"就地…

美团拼图滑块

有时候放弃也是一种智慧。 就像这说的一样,美团的拼图滑块,不知道这个缺口该怎么去处理,正常划顶到最外面去了,所以就不知道这个是咋计算的。 先来看看他的这个加密,跟原来的一划到底其实是一样的,难度只是…

一例plugx样本的分析(AcroRd32cWP)

这是一例plugx的样本,使用了一个合法签名的程序 ,使用侧加载的方式加载一个恶意的dll,解密一个dat文件来,在内存中执行一个反射型dll来完成恶意功能。 这个病毒会使用摆渡的方式的来窃取内网的文档数据,具有严重的失泄…

【FastCAE源码阅读9】鼠标框选网格、节点的实现

一、VTK的框选支持类vtkInteractorStyleRubberBandPick FastCAE的鼠标事件交互类是PropPickerInteractionStyle,它扩展自vtkInteractorStyleRubberBandPick。vtkInteractorStyleRubberBandPick类可以实现鼠标框选物体,默认情况下按下键盘r键开启框选模式…

【JVM】类加载器 Bootstrap、Extension、Application、User Define 以及 双亲委派

以下环境为 jdk1.8 两大类 分类成员语言继承关系引导类加载器bootstrap 引导类加载器C/C无自定义类加载器extension 拓展类加载器、application 系统/应用类加载器、user define 用户自定义类加载器Java继承于 java.lang.ClassLoader 四小类 Bootstrap 引导类加载器 负责加…

Jenkins的介绍与相关配置

Jenkins的介绍与配置 一.CI/CD介绍 1.CI/CD概念 ①CI 中文意思是持续集成 (Continuous Integration, CI) 是一种软件开发流程,核心思想是在代码库中的每个提交都通过自动化的构建和测试流程进行验证。这种方法可以帮助团队更加频繁地交付软件&#x…

[vim]Python编写插件学习笔记3 - 命令行参数

0 环境 Windows 11 22H2gVim82 (D:/ProgramFiles/Vim)Python311 (D:/ProgramFiles/Python311)Vundle v0.10.2 阅读本文前,需要先了解前文: 《[vim]Python 编写插件学习笔记1 - 开始》 《[vim]Python 编写插件学习笔记2 - 分离》 1 前提说明 由于本…

【教3妹学编辑-mysql】mybatis查询条件遇到的坑及解决方案

2哥 :3妹,今天怎么下班这么晚啊。 3妹:嗨,别提了,今天线上出bug了, 排查了好久。 2哥:啊,什么问题呀? 3妹:我们内部的一个管理系统报错了, 最近排查下来是myb…

AR工业眼镜:智能化生产新时代的引领者!!

科技飞速发展,人工智能与增强现实(AR)技术结合正在改变生活工作方式。AR工业眼镜在生产领域应用广泛,具有实时信息展示、智能导航定位、远程协作培训、智能安全监测等功能,提高生产效率、降低操作风险,为企…

dolphinscheduler

架构说明 MasterServer MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交监控,并同时监听其它MasterServer和WorkerServer的健康状态。 MasterServer服务启动时向Zookeeper注册临时节点,通过监听Zookeep…

.secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

导言: 勒索病毒成为了网络安全的一项严峻挑战,其中.secret勒索病毒尤为引人注目。这种恶意软件通过加密用户的数据文件,使其无法访问,并勒索受害者支付赎金以获取解密密钥。本文将介绍.secret勒索病毒的基本信息,以及…

LeetCode_线段树_中等_307.区域和检索 - 数组可修改

目录 1.题目2.思路3.代码实现(Java) 1.题目 给你一个数组 nums ,请你完成两类查询。 其中一类查询要求 更新 数组 nums 下标对应的值另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的…

关于tcp发送成功但对端无法接收情况的思考

用到一个http服务,但调用频率很高,每次请求都使用短连接的话,有点浪费。 所以尝试复用http连接,请求的时候在头部添加Connection:Keep-alive,对端支持,但会在一定时常或一定请求次数后关闭该连接…

压测工具主要功能是什么?该怎样选择?

压测工具是一类用于模拟并评估系统在不同负载条件下的性能的软件应用程序。通过模拟大量用户同时访问系统,压测工具能够帮助开发者识别系统的瓶颈、性能瓶颈以及潜在的故障点。这种实时、模拟的方式允许开发者在正式投入使用之前发现并解决问题,提高系统…

es 报错 Data too large 触发断路器

文章目录 [toc]事出有因解决思路效果展示关于重启课外扩展 事出有因 报错原因是 es 在 full GC 之前触发了默认的断路器,导致报错 [parent] Data too large,相似的报错内容如下: Caused by: org.elasticsearch.common.breaker.CircuitBreakin…

牛客--完全数计算python

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 例如:28&…

使用JDBC连接数据库出现The server time zone value ‘�й���׼ʱ��‘ is unrecognized 的解决方案

看到网上的大佬们说是引入的依赖版本太高所以导致了时区有问题 但是我把依赖的版本改低了还是报错 用另一种办法直接在配置文件中修改url然后成功解决 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/datasource?useUnicodetrue&characterEncodingutf8&useSSL…

K8S在任意节点使用kubectl

1、将master节点中的配置文件拷贝到node节点。 [rootk8s-master-10 kubernetes]# scp /etc/kubernetes/admin.conf rootk8s-node-12:/etc/kubernetes/2、在对应服务器上配置环境变量 [rootk8s-node-12 ~]# echo "export KUBECONFIG/etc/kubernetes/admin.conf">…

Win Docker Desktop + WSL2 部署PyTorch-CUDA服务至k8s算力集群

Win Docker Desktop WSL2 部署PyTorch-CUDA服务至k8s算力集群 Win Docker Desktop WSL2 安装安装WSL-Ubuntu拉取镜像并测试挂载数据并开放端口导出镜像或导入镜像在k8s集群部署 Win Docker Desktop WSL2 安装 首先根据你的操作系统版本 安装WSL ,记得切换WSL2&a…

vue day1(主要是指令)

1、引包 或者:cdn网址 2、创建实例,初始化渲染 3、插值表达式 {{}} 表达式:可以被求值的代码 4、响应式数据:数据发生变化,视图自动更新(底层是dom操作) data中数据会被添加到实例上&#x…