(2022级)成都工业学院数据库原理及应用实验五: SQL复杂查询

embedded/2024/10/22 16:26:51/

写在前面

1、基于2022级软件工程/计算机科学与技术实验指导书

2、成品仅提供参考

3、如果成品不满足你的要求,请寻求其他的途径

运行环境

window11家庭版

Navicat Premium 16

Mysql 8.0.36

实验要求

在实验三的基础上完成下列查询:

1、查询医生“陈斌”值班的日期、时段、诊室名称、诊室位置。

2、查询级别名称为 “二级专家”的医生姓名、诊疗费用、科室名称。

3、查询在2022年4月18一天中上午、下午均值班的医生的工作证号。

4、查询在2022年4月18和4月19日两天均未值班的医生的工作证号、姓名、科室名称。

5、查询每个科室的科室编码及医生人数(要求按科室编码分组)。

6、查询科室级别为”2”的每个科室的科室编码及医生人数(要求按科室编码分组)。

7、查询各个医生级别的级别编码、级别名称及其人数。(要求只按医生级别分组,统计人数建议用派生表)

8、查询每个医生的工作证号、姓名和值班次数。(半天算值班1次,要求只按工作证号分组,统计次数建议用派生表实现)

实验过程

1、查询医生“陈斌”值班的日期、时段、诊室名称、诊室位置。

SELECTSkd_Date,Skd_seg,Room_name,Room_loc 
FROMdoctorINNER JOIN room ON doctor.Dept_no = room.Dept_noINNER JOIN SCHEDULE ON doctor.Dr_no = SCHEDULE.Dr_no 
WHEREDr_name = "陈斌"

2、查询级别名称为 “二级专家”的医生姓名、诊疗费用、科室名称。

SELECTDr_name,Drlv_fee,Room_name
FROMdoctorINNER JOIN doctorlevel ON doctor.Drlv_no=doctorlevel.Drlv_noINNER JOIN room ON doctor.Dept_no = room.Dept_noWHEREDrlv_name = "二级专家"

3、查询在2022年4月18一天中上午、下午均值班的医生的工作证号。

SELECTDr_no 
FROM
SCHEDULE 
WHEREdate( Skd_Date )= "2022-4-18" 
GROUP BYDr_no 
HAVINGcount(*)>1

4、查询在2022年4月18和4月19日两天均未值班的医生的工作证号、姓名、科室名称。

SELECTdoctor.Dr_no,Dr_name,Dept_name 
FROMdoctorINNER JOIN SCHEDULE ON doctor.Dr_no = SCHEDULE.Dr_noINNER JOIN department ON doctor.Dept_no = department.Dept_no 
GROUP BYdoctor.Dr_no 
HAVINGcount(*)=0

5、查询每个科室的科室编码及医生人数(要求按科室编码分组)。

SELECTdepartment.Dept_no,COUNT(Dr_no)
FROMdepartmentINNER JOIN doctor ON department.Dept_no = doctor.Dept_no
GROUP BYDept_no

6、查询科室级别为”2”的每个科室的科室编码及医生人数(要求按科室编码分组)。

SELECTdepartment.Dept_no,COUNT(Dr_no)
FROMdepartmentINNER JOIN doctor ON department.Dept_no = doctor.Dept_noWHERE Dept_level=2
GROUP BYDept_no

7、查询各个医生级别的级别编码、级别名称及其人数。(要求只按医生级别分组,统计人数建议用派生表)

SELECTdoctorlevel.Drlv_no,Drlv_name,COUNT( Dr_no ) AS Dr_num
FROMdoctorlevelINNER JOIN doctor ON doctorlevel.Drlv_no = doctor.Drlv_no
GROUP BY
doctorlevel.Drlv_no;

8、查询每个医生的工作证号、姓名和值班次数。(半天算值班1次,要求只按工作证号分组,统计次数建议用派生表实现)

SELECTdoctor.Dr_no,Dr_name,COUNT( Skd_seg ) AS Skd_time 
FROMdoctorINNER JOIN SCHEDULE ON doctor.Dr_no = SCHEDULE.Dr_no 
GROUP BYdoctor.Dr_no;


http://www.ppmy.cn/embedded/5382.html

相关文章

学习 Rust 的第四天:基本编程概念学习

嘿,大家好! 欢迎来到 Rust 学习的第四天,我参考的是 Steve Klabnik 的《Rust 编程语言》一书。昨天我们做了一个 [猜数字游戏](https://blog.csdn.net/Tory2/article/details/137764707?spm1001.2014.3001.5501),今天我们将深入…

基于SpringBoot的“商务安全邮箱”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“商务安全邮箱”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构 收件箱效果图 草稿箱效果图 已发送…

AOP基础

一、AOP概述 AOP:Aspect Oriented Programming(面向切面编程、面向方面编程),其实就是面向特定方法编程。 使用场景:①记录操作日志;②权限控制;③事务管理等。 优势:①代码无侵入…

redis7 源码调试 服务端处理客户端./redis-cli连接 指令执行过程

redis7 源码调试 服务端处理客户端./redis-cli连接 指令执行过程 ##redis-cli客户端发起 ./redis-cli 客户端连接 指令 ##redis网络请求 1、AE_READABLE事件 2、客户端fd 3、创建文件事件 4、添加客户端cfd读写事件 5、处理读事件AE_READABLE 6、回调函数处理连接请求 rea…

von Mises-Fisher Distribution (代码解析)

torch.distribution 中包含了很多概率分布的实现,本文首先通过均匀分布来说明 Distribution 的具体用法, 然后再解释 von Mises-Fisher 分布的实现, 其公式推导见 von Mises-Fisher Distribution. 1. torch.distribution.Distribution 以下是 Uniform 的源码: cl…

Flink 的 JDBC Table Source 支持分区扫描功能

Flink 的 JDBC Table Source 支持分区扫描功能,这可以加速并行任务实例中的数据读取。分区扫描允许 Flink 将数据表分割成多个部分(分区),每个任务可以独立地读取一个分区的数据。这样做可以提高数据处理的并行性和效率&#xff0…

Mac搭建Java环境【环境搭建】

Mac搭建Java环境【环境搭建】 1 安装Java SDK 官网地址:https://www.oracle.com/java/technologies/downloads/archive/ 下载dmg,双击之后无脑安装即可。 # 进入 JDK 安装目录 cd /Library/Java/JavaVirtualMachines# 查看文件 ls# 输入 cd ~# 打开环…

OpenHarmony开发实例:【鸿蒙.bin文件烧录】

使用HiBurn烧录鸿蒙.bin文件到Hi3861开发板 鸿蒙官方文档的“Hi3861开发板第一个示例程序”中描述了——如何使用DevEco Device Tool工具烧录二进制文件到Hi3861开发板; 本文将介绍如何使用HiBurn工具烧录鸿蒙的.bin文件到Hi3861开发板。 获取HiBurn工具 通过鸿蒙…