5.11【数据库】第一次实验
民宿预定,至少有不同的民宿,民宿下面有不同的房间(面积,房间编号)
房间类型,单价,
可预订以及不可预订
游客信息
订单信息
公司有很多课程,
学生,课程
每位学生每期只能参加一门课程
一个课程可以由多个学生选择,一个学生只可以选择一门课程。一个学生在一期内只能参加一门课程,必须考虑“每期课程”的概念
Record作为一个实体集,弱实体集,综合了期,课程,学生的信息,主键是学期主键和学生主键,学生参加课程的行为是弱实体。
课程表与Record表之间存在一对多的关系,就是同一个课程在Record当中可能有多个记录
一位老师参与多门课,多位老师独立上同一门课
排课表,一个课程可以安排多次排课,一个排课对应一个独立的授课安排,
不同老师的马原课是同一课程,引用COURSE表中同一记录的主键作为外键,但是是不同的排课,排课表的主键是组合主键(课程编号+排课编号)
SELECT H.NAME,R.TYPE,COUNT(*)AS ROOMCOUNT FROM HOTEL AS H,ROOM AS R WHERE H.HOTELNO=R.HOTELID GROUP BY H.NAME,R.TYPE
从民宿表,房间表,筛选民宿ID和房间ID相同(即连接上,就是房间表里很多的房间,分属于不同的民宿,通过筛选民宿ID来进行选择)
投影到姓名,房间号,筛选从预定表里筛选,在民宿表里,固定城市为长沙,名称为华天宾馆,然后在预定表里,要求预定时间为2019-09-29,最后就是连接,客户编号和预定表里编号一致,房间编号和预定表里的一致
投影到名称,类型与价格,从民宿表,房间表,价格表里找,在民宿表里限定城市为长沙,类型限定,价格限定,最后排序
SELECT COUNT(DISTINCT GUESTNO) FROM
投影的位置选择聚合函数COUNT,里面是DISTINC,数GUESTNO并对其去重,从预定表里去选,限定条件是日期在2019-08-01与2019-09-01之间,即八月份
从预定表里选,要求该数据项为空
从民宿表里选,在投影位置选择聚合函数COUNT对每一行进行计数
以城市为分组,就是在最后先GROUP BY CITY,在投影区域,投到城市,以及聚合函数AVG上(r.price),即对满足条件的每组的城市的价格求一个平均,从民宿表和房间表里
投影到城市名称、类型、平均价格,从民宿表,房间表,要求民宿名称,而且民宿表的民宿编号和房间表的民宿编号一致(这个就相当于把民宿表和房间表连接到了一起),按在不同城市以及房间类型进行分组
从预订表,民宿表,客户表里选,客户表里要求户籍地是北京,然后预订表要求预订日期,联合要求预订的民宿表和预订表中的一致,客户表里的和预定表里的一致(即把三个表连接到了一起,从逻辑上,预定订单不一定需要订单单号,)
从民宿表,房间表里选,要求民宿表编号和房间表里的民宿表编号一致,民宿表里的城市,民宿表里的名称
这个预定表里就是只有民宿和用户的编号以及房间编号,没有订单单号
从预订表,民宿表里选,还要从房间表里选,要求民宿编号和预订表里的编号一致,预订表里和房间表里一致(连接三 个表),预订表里要求时间
??为什么要连接这么多
从房间表,民宿表里选,要求房间表里的民宿编号和民宿表的一致,民宿表要求城市与名称,对于房间编号,要求不在一个子查询里,这个查询是(
从预订表,民宿表和房间表里选,要求预订表的民宿编号和民宿表的一致,预订表的民宿编号和房间表的民宿编号一致,都是与B连接,核心思路是通过预订表唯一确定上一个房间与一个民宿,这样才能进行连接,而要唯一确定出房间,就必须要确定其民宿编号,这是连接了三个表,练完后对预订日期做限制)
从民宿表,预订表,房间表里选,是要返回每个旅馆的房间入住率,城市名称、宾馆名称、入住率,前两个东西是直接从民宿表里获取的(不用去重,因为民宿表里本身就没有重的)
对于入住率,也不只是从民宿表一个表里取得的,利用子查询完成,是要让入住的除以总共的即可
对于入住的总数,从民宿表,预订表里选,预订表里的所有数据数量加以限制后就是入住的总数,即对时间做限制,预订表的民宿编号和民宿表的一致,COUNT(*)就是统计所有的数量)
对于房间总数,从房间表里查,要求房间表的民宿编号和民宿表的一致(相当于通过确定某一民宿编号后,那么房间表里就只有这个编号对应下的民宿里的房间),然后在房间表里去数总数量,最外面的HOTEL AS H就是逐行确认一个房间编号,按照出现的顺序依次去进行遍历
要返回房间号,价格,从民宿表,房间表里去选,先民宿后房间,对于民宿要求名称和城市,然后对于房间要求其民宿编号和刚才确认的民宿编号一致,接着对房间表继续做限制,要求类型是双人间,
还要要求房间没被其他人预订过,这个就要求进行一次子查询,子查询返回的结果是房间编号,即已经在相应时间内被预订过的房间编号,那么就是要求上述的房间编号不在这个编号组内,这个就要求在三个表内去查询,这个顺序的话,是先确定的房间编号,然后民宿编号,要求预订表里的编号和之前的房间编号一致,和之前的民宿编号一致,
投影到类型,聚合函数为MAX,从预订表里选,要求时间
表示触发事件的操作表名
表示任何一条记录上的操作满足触发事件都会触发该触发器
执行语句,INSERT只有NEW是合法的,表示当前已插入的记录对于DELETE只有OLD才合法
UPDATE可以和NEW以及OLD同时使用
存储过程
存储过程就是SQL的代码封装与重用
参数分为IN,OUT,INOUT,IN表示接收调用者传入的数据,OUT表示向调用者返回数据
该参数的值必须由调用程序指定;OUT表示经过存储过程计算后,返回给调用程序
语句的SELECT相当于一个输出
@就是相当于定义了
这个就是一个纯打印,输入参数是起始日期,结束日期和酒店的编号
从房间表,民宿表里选,要求房间表和民宿表的编号对应,然后房间编号不在子查询的结果里
子查询的结果是:满足日期在范围内的编号
当主表没有对应记录,不能将记录加到子表里,即学生成绩表中不能出现没有的学号
删除成绩表,先删子表后删主表
被引用的列具有主键约束或者唯一性,用来建立和强加两个表数据之间的连接
外键是用来建立表与表之间关系的字段
外键可以用来确保所选课程在课程表内,保持数据一致性
相关文章:

5.11【数据库】第一次实验
民宿预定,至少有不同的民宿,民宿下面有不同的房间(面积,房间编号) 房间类型,单价, 可预订以及不可预订 游客信息 订单信息 公司有很多课程, 学生,课程 每位学生每期…...

【CSS in Depth 2 精译_062】第 10 章 CSS 中的容器查询(@container)概述 + 10.1 容器查询的一个简单示例
当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 ✔️ 10.1.1 容器尺寸查询的用法 ✔️ 10.2 深入理解容器10.3 与容器相关的单位10.4 容器样式查询的用法10.5 本章小结 文章目录 第 10…...

蓝桥杯每日真题 - 第23天
题目:(直线) 题目描述(12届 C&C B组C题) 解题思路: 题目理解: 在平面直角坐标系中,从给定的点集中确定唯一的直线。 两点确定一条直线,判断两条直线是否相同,可通过…...
# Vue 入门级教程三
在前两篇 Vue 入门教程中,我们已经熟悉了 Vue 的基础语法、数据绑定、指令以及组件化开发等核心概念。在本教程中,我们将进一步探索 Vue 的高级特性,包括过滤器、自定义指令、过渡效果以及 Vue 与后端数据交互等内容,让你能够构建…...

hint: Updates were rejected because the tip of your current branch is behind!
问题 本地仓库往远段仓库推代码时候提示: error: failed to push some refs to 192.168.2.1:java-base/java-cloud.git hint: Updates were rejected because the tip of your current branch is behind! refs/heads/master:refs/heads/master [rejected] (…...

PHP 方头像转为圆图
业务需要把创建海报上的用户头像由方形转为圆形,前端的样式设置不能用。 故采用GD的函数来对方图进行裁剪处理为圆图。 目录 裁剪函数 本地图片 远程图片 效果 参考文章 总结 裁剪函数 从网上找的一个裁剪图片的函数。 代码如下: /* * 将图片切…...

centos 7 离线安装postgis插件
前一段时间记录了下如何在centos7中离线安装postgresql,因为工作需要,我不仅要安装postgresql,还需要安装postgis插件,这篇文章记录下postgis插件的安装过程。 1. 安装前的参考 如下的链接都是官网上的链接,对你安装p…...
pyinstaller打包的时候将ffmpeg也加进包中(包括打包文件夹的方法)
在使用 PyInstaller 打包包含 pydub 的 Python 应用程序时,由于 pydub 需要依赖 ffmpeg,你需要确保 ffmpeg 被正确包含进打包后的程序。以下是操作步骤: 1. 准备 ffmpeg 首先,确保你已经下载并安装了 ffmpeg。可以通过以下方式获取…...

JVM面试知识点1
内存结构(掌握内存结构划分、熟知各区域结构功能) 经典的JVM内存结构: 按照线程是否共享来划分: Heap (堆区) 1. 堆区的介绍 堆是 OOM 故障最主要的发生区域。它是内存区域中最大的一块区域,被所有线程共…...
wordpress
2024年自己建网站的步骤,新手自学建站教程 – 奶爸建站笔记 超详细图解:从 0 搭建一个个人网站,也太简单了吧 - 王一白 - 博客园 如何使用插件或者自定义页面创建一个WordPress着陆页 - 闪电博...
Day33 动态规划part02
62.不同路径 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。 代码随想录 视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili class Solution {public int uniquePaths(int m, int n) {int dp[][] = new int[m][n];//初…...

渗透测试之Web基础之Linux病毒编写——泷羽sec
声明: 学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。本文只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 (bilibili.com)https://space.bilibili.com/350329294 导读: 时刻…...

jmeter基础07_组件的层级
课程大纲 1. 优先级/执行顺序(一般情况) 同级组件:按组件先后顺序执行。如:同一层的线程组、同一层的http请求。 上下级组件:先执行外层(上级),再执行内层(下级ÿ…...

Nginx反向代理和负载均衡配置
一、疑问 在苍穹外卖里,浏览器发送的请求,比如登录,其url为http://localhost/api/employee/login, 而后端的路径是http://localhost:8080/admin/employee/login 两者不一致,数据是如何准确传输的呢? 二、…...

【379】基于springboot的防疫物资管理信息系统
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装防疫物资管理信息系统软件来发挥其高效地信息处理的作用&am…...

Linux 各个目录作用
刚毕业的时候学习Linux基础知识,发现了一份特别好的文档快乐的 Linux 命令行,翻译者是happypeter,作者当年也在慕课录制了react等前端相关的视频,通俗易懂,十分推荐 关于Linux的目录,多数博客已有详细介绍…...

【Linux】文件操作的艺术——从基础到精通
🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚前言:一切皆文件 📚一、C语言的文件接口 📖1.文件打…...

java中的运算符
大家好,今天来看看java中运算符的一些知识点,理解好运算符是我们在写代码的一大重点,那么我们就来看看吧。 运算符:对操作数进行操作时的符号.,不同运算筹操作的含义不同. 一、算术算片. 1、基本四则运算符:加减乘除模(一*/%) 注意:都是二元…...
全面解析 C++ STL 中的 set 和 map
C 标准模板库(STL)中的关联式容器以其强大的功能和高效性成为开发者解决复杂数据组织问题的重要工具。其中,set 和 map 是最常用的两类关联容器。本篇博客将从基本特性、底层实现、用法详解、高级案例以及性能优化等多个角度,详细…...
css:怎么设置div背景图的透明度为0.6不影响内部元素
目录 1.前言 2.解决思路 3.具体实例 4.另外一种实例 5.总结 1.前言 div背景图为project-bg.png,设置div透明度为0.6;div内的名称、数值受透明度影响颜色显示不正常;怎么设置背景图的透明度为0.6不影响内部元素; 2.解决思路 …...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...