数据库基础练习4

news2024/10/1 1:23:57

准备

create table dept (dept1 int ,dept_name varchar(11)) charset=utf8;
create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) charset=utf8;

     insert into dept values
    (101,'财务'),
    (102,'销售'),
    (103,'IT技术'),
    (104,'行政');

    INSERT INTO emp VALUES
    (1789, '张三', 35, '1980-01-01', 4000, 101),
    (1674, '李四', 32, '1983-04-01', 3500, 101),
    (1776, '王五', 24, '1990-07-01', 2000, 101),
    (1568, '赵六', 57, '1970-10-11', 7500, 102),
    (1564, '荣七', 64, '1963-10-11', 8500, 102),
    (1879, '牛八', 55, '1971-10-20', 7300, 103),
    (1668, '钱九', 64, '1963-05-04', 8000, 102),
    (1724, '武十', 22, '2023-05-08', 1500, 103),
    (1770, '孙二', 65, '1986-08-12', 9500, 101),
    (18400, '苟一', 65, '1986-08-12', 1500, 101);

 练习

1.找出销售部门中年纪最大的员工的姓名

SELECT name 
FROM emp 
WHERE dept2 = (SELECT dept1 FROM dept WHERE dept_name = '销售') 
ORDER BY age DESC 
LIMIT 2;

2.求财务部门最低工资的员工姓名

SELECT name 
FROM emp 
WHERE dept2 = (SELECT dept1 FROM dept WHERE dept_name = '财务') 
ORDER BY incoming ASC 
LIMIT 1;

3.列出每个部门收入总和高于9000的部门名称

SELECT d.dept_name 
FROM dept d 
JOIN emp e ON d.dept1 = e.dept2 
GROUP BY d.dept_name 
HAVING SUM(e.incoming) > 9000;

4.求工资在7500到8500元之间,年龄最大的人的姓名及部门

SELECT e.name, d.dept_name 
FROM emp e 
JOIN dept d ON e.dept2 = d.dept1 
WHERE e.incoming BETWEEN 7500 AND 8500 
ORDER BY e.age DESC 
LIMIT 1;

 

5.找出销售部门收入最低的员工入职时间

SELECT worktime_start 
FROM emp 
WHERE dept2 = (SELECT dept1 FROM dept WHERE dept_name = '销售') 
ORDER BY incoming ASC 
LIMIT 1;

6.财务部门收入超过2000元的员工姓名

SELECT name 
FROM emp 
WHERE dept2 = (SELECT dept1 FROM dept WHERE dept_name = '财务') 
AND incoming > 2000;

7.列出每个部门的平均收入及部门名称

SELECT d.dept_name, AVG(e.incoming) AS avg_income 
FROM emp e 
JOIN dept d ON e.dept2 = d.dept1 
GROUP BY d.dept_name;

8.IT技术部入职员工的员工号

SELECT sid 
FROM emp 
WHERE dept2 = (SELECT dept1 FROM dept WHERE dept_name = 'IT技术');

9.财务部门的收入总和;

SELECT SUM(incoming) AS total_income 
FROM emp 
WHERE dept2 = (SELECT dept1 FROM dept WHERE dept_name = '财务');

10.找出哪个部门还没有员工入职;

SELECT dept_name 
FROM dept 
WHERE dept1 NOT IN (SELECT DISTINCT dept2 FROM emp);

11.列出部门员工收入大于7000的部门编号,部门名称;

SELECT d.dept1, d.dept_name 
FROM dept d 
JOIN emp e ON d.dept1 = e.dept2 
GROUP BY d.dept1, d.dept_name
HAVING MAX(e.incoming) > 7000;

12.列出每一个部门的员工总收入及部门名称;

SELECT d.dept_name, SUM(e.incoming) AS total_income 
FROM emp e 
JOIN dept d ON e.dept2 = d.dept1 
GROUP BY d.dept_name;

13.列出每一个部门中年纪最大的员工姓名,部门名称;

SELECT e.name, d.dept_name 
FROM emp e
JOIN dept d ON e.dept2 = d.dept1
WHERE e.age = (
    SELECT MAX(sub_e.age)
    FROM emp sub_e
    WHERE sub_e.dept2 = e.dept2
)
ORDER BY e.age DESC;

14.求李四的收入及部门名称

SELECT e.incoming, 
       (SELECT d.dept_name FROM dept d WHERE d.dept1 = e.dept2) AS dept_name
FROM emp e
WHERE e.name = '李四';

15.列出每个部门中收入最高的员工姓名,部门名称,收入,并按照收入降序

SELECT e.name, d.dept_name, e.incoming 
FROM emp e 
JOIN dept d ON e.dept2 = d.dept1 
WHERE e.incoming = (
    SELECT MAX(incoming) 
    FROM emp 
    WHERE dept2 = e.dept2
)
ORDER BY e.incoming DESC;

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

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

相关文章

诸葛亮的连环计 责任链模式

“万事谋定而后动,一环扣一环,方能成大事。” 在三国时期,诸葛亮以其超凡的智慧闻名天下。在他众多的计策中,有一个鲜为人知却极具智慧的连环计,完美诠释了现代软件设计中的责任链模式。让我们一同探索这个巧妙的计策…

【安全设备】堡垒机

一、什么是堡垒机 安全运维审计与风险控制系统即堡垒机,前身为跳板机,跳板机是一个简单的管理设备,但缺乏对运维操作的控制和审计能力。堡垒机是一种特定的网络安全设备,用于在一个网络环境中保护数据和网络不受外部和内部用户的…

Python酷库之旅-第三方库Pandas(013)

目录 一、用法精讲 31、pandas.read_feather函数 31-1、语法 31-2、参数 31-3、功能 31-4、返回值 31-5、说明 31-6、用法 31-6-1、数据准备 31-6-2、代码示例 31-6-3、结果输出 32、pandas.DataFrame.to_feather函数 32-1、语法 32-2、参数 32-3、功能 32-4、…

Go语言入门之基础语法

Go语言入门之基础语法 1.简单语法概述 行分隔符: 一行代表一个语句结束,无需写分号。将多个语句写在一行可以用分号分隔,但是不推荐 注释: // 或者/* */ 标识符: 用来命名变量、类型等程序实体。 支持大小写字母、数字…

Golang | Leetcode Golang题解之第226题翻转二叉树

题目: 题解: func invertTree(root *TreeNode) *TreeNode {if root nil {return nil}left : invertTree(root.Left)right : invertTree(root.Right)root.Left rightroot.Right leftreturn root }

Python函数 之 模块和包

1.模块 1, 在Python 中, 每个以 .py 结尾的 Python 代码⽂件 都可以称为是⼀个模块。 2, 在模块中 别⼈书写好的功能(变量, 函数, 类),我们可以拿来直接使⽤。 3, 我们自己写的代码文件, 想要作为模块让别⼈使⽤, 你的代码⽂件名(模块名) 满足标识符的规…

大话光学原理:4.散射:瑞利、拉曼、米氏和布里渊

这是一缕柔和的光,在空气的舞台上轻盈地跳跃。它悠然自得,在宁静的空间中缓缓前行。然而,一片细薄透明的介质挡住了它的脚步,它毫无预兆地撞上了这片障碍。在这短暂的接触中,它被分解成无数微小的粒子,被迫…

LabVIEW电滞回线测试系统

铁电材料的性能评估依赖于电滞回线的测量,这直接关系到材料的应用效果和寿命。传统的电滞回线测量方法操作复杂且设备成本高。开发了一种基于LabVIEW的电滞回线测试系统,解决传统方法的不足,降低成本,提高操作便捷性和数据分析的自…

前端面试题38(js原型与对象)

在JavaScript中,原型(prototype)是核心特性之一,它用于实现对象之间的继承和属性方法的共享。理解原型和对象的关系对于深入学习JavaScript至关重要。下面我会详细解释这两个概念以及它们是如何工作的,并给出一些示例代…

关于Python的类的一些理解

才发现python的类对象只能调用类方法 我想使用对类对象a使用系统调用的len方法就会报错 2.类对象a是什么? 答:是所有的带有self的成员变量 举例说明:红色的就是a里面的东西 class A:def __init__(self,data):self.datadataself.b1self.d{a…

详细分析@FunctionalInterface的基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 Java的基本知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)Spring框架从入门到学精(全) 1. 基本知识 FunctionalInterface 是 Java 8 引入的一个注…

理解负载组电路-EAK负载电路解释

负载组具有安全、可靠、操作方便、使用寿命长等特点。了解控制、冷却和负载元件电路的布局和功能对于理解负载组的运行、为应用选择负载组和维护负载组非常重要。以下各节将描述这些电路。 EAK负荷组运行概述 负载组接收来自电源的电力,将其转换为热量,…

【漏洞复现】通达OA v2017 video_file.php 任意文件下载漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

数据结构之折半查找

折半查找的算法思想: 折半查找又称二分查找,它仅仅适用于有序的顺表。 折半查找的基本思想:首先将给定值key与表中中间位置的元素(mid的指向元素)比较。midlowhigh/2(向下取整) 若key与中间元…

字典树(Tire树)

字典树(Tire树) 字典树是一种多叉树,又称为前缀树。核心思想是利用字符串的公共前缀。 字典树的根节点为空,从根节点到某一节点路径上的字符连接起来构成字符串,完整的字符串在链上而非结点上,一个节点的所有子节点都具有相同公…

AMSR-E L2 降雨子集:GES DISC 的 CloudSat 轨道 V002 (AMSERR_CPR) 位于同一地点

AMSR-E L2 Rainfall Subset, collocated with CloudSat track V002 (AMSERR_CPR) at GES DISC AMSR-E L2 降雨子集,与位于 GES DISC 的 CloudSat 轨道 V002 (AMSERR_CPR) 位于同一地点 简介 这是沿云卫星视场轨迹的 AMSR-E 雨率产品子集。子集的目标是选择并返回…

英福康INFICON FabGuard传感器集成与分析系统PPT

英福康INFICON FabGuard传感器集成与分析系统PPT

14-65 剑和诗人39 - 打造你自己的 Devin

​​​​​ 绝密 Devin 架构 更具体地说,构建您自己的 AI 代理。 Devin 使用 GPT-4 ,而人们已经开始用 Claude-3-Opus 构建替代方案 Devin 的 UI 体验更好。 例如,它甚至看不到浏览器,但它确实存在于用户面前 此外,你可以随时与它“交谈”,就像与人交谈一样,它会在后…

使用linux的mail命令发送html格式的邮件

1、关闭本机的sendmail服务或者postfix服务 #执行下面的命令,各位大侠都对号入座吧 #sendmial service sendmail stop chkconfig sendmail off #postfix service postfix stop chkconfig postfix off#再狠一点就直接卸载吧.. yum remove sendmail yum remove postf…

操作系统:信号究竟是什么?如何产生?

OS信号 一、信号的概念二、信号的产生1)终端按键产生信号1、 前台进程、后台进程2、验证终端按键是否产生信号 2)调用系统函数向进程发信号3)硬件异常产生信号1、浮点数溢出,CPU产生信号2 浮点数溢出,产生信号原理3. 空…