Mysql数据库两表连接进行各种操作

一,创建两个表emp和dept,并给它们插入数据

1.创建表emp

create table dept (dept1 int ,dept_name varchar(11)) charset=utf8;

2.创建表dept
 create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) charset=utf8;
3.为dept表输入数据

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

4.为emp表输入数据

insert into emp values
   (1789,'张三',35,'1980/1/1',4000,101),
    (1674,'李四',32,'1983/4/1',3500,101),
    (1776,'王五',24,'1990/7/1',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/5/4', 8000, 102),
    (1724, '武十', 22, '2023/5/8', 1500, 103),
    (1770, '孙二', 65, '1986/8/12', 9500, 101),
    (18400, '苟一', 65, '1986/8/12', 1500, 101);

二.连接查询操作

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

select e.name from emp e
    join dept d
    on e.dept2=d.dept1
    order by e.age desc
    limit 1;

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

select e.name from emp e
     join dept d on e.dept2=d.dept1
    where d.dept_name='财务'
    order by e.incoming ASC
    limit 1;

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

 SELECT d.dept_name, SUM(e.incoming) AS total_income
    FROM dept d
    JOIN emp e ON d.dept1 = e.dept2
    GROUP BY d.dept_name
    HAVING total_income > 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 e.worktime_start
    FROM emp e
    JOIN dept d ON e.dept2 = d.dept1
    WHERE d.dept_name = '销售'
    ORDER BY e.incoming ASC
    LIMIT 1;

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

SELECT e.name
    FROM emp e
    JOIN dept d ON e.dept2 = d.dept1
    WHERE d.dept_name = '财务' AND e.incoming > 2000;

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

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

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

select e.sid from emp e
    join dept d on e.dept2=d.dept1
    where d.dept_name='IT技术';

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

select  sum(e.incoming)
    from emp e
    join dept d on e.dept2=d.dept1
    where d.dept_name='财务';

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

SELECT d.dept_name FROM dept d LEFT JOIN emp e ON d.dept1 = e.dept2 WHERE e.sid IS NULL;

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

select d.dept1,d.dept_name from dept d
    -> join emp e on d.dept1=e.dept2
    -> where e.incoming>7000;

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

SELECT d.dept_name, SUM(e.incoming) AS total_income

FROM dept d

JOIN emp e ON d.dept1 = e.dept2

GROUP BY d.dept_name;

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

SELECT e.name, d.dept_name FROM emp e INNER JOIN dept d ON e.dept2 = d.dept1 WHERE (e.dept2, e.age) IN (SELECT dept2, MAX(age) FROM emp GROUP BY dept2);
 

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

SELECT e.incoming, d.dept_name FROM emp e INNER JOIN dept d ON e.dept2 = d.dept1 WHERE e.name = '李四';
 

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

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



    

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

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

相关文章

数据库基础复习

数据库简介 关系型数据库:Mysql 、Oracle 、SqlServer.... DB2 达梦 非关系型数据库:Redis 、MongoDB... MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管…

化妆品3D虚拟三维数字化营销展示更加生动、真实、高效!

随着人们越来越追求高速便捷的生活工作方式,企业在营销市场也偏国际化,借助VR全景制作技术,将企业1:1复刻到云端数字化世界,能带来高沉浸式的逼真、震撼效果。 通过我们独特的漫游点自然场景过渡技术,您将置身于一个真…

产品推荐| 立錡低耗电器件:线性稳压器、Buck 和 Boost 转换器

想让电池用得更久、利用好它的每一份电力?低静态电流的电源转换器是你的必然选择。立錡深谙电源管理之道,为你备好了低耗电的各种产品,其中包括低压差线性稳压器、Buck 转换器和 Boost 转换器,最低消耗仅有 360nA,是无…

猎人维修大师免狗版

技术文档摘要 标题: 多功能维修工具集合概述 摘要: 本文档提供了一组多功能维修工具的概述,这些工具旨在为专业技术人员提供便利,以执行设备维修和软件解锁等任务。文档列出了各个工具的主要功能和应用场景。 关键词&#xff1…

探索绿色消费新纪元:消费增值模式的崛起与未来

各位朋友,大家好!我是吴军,来自一家在软件开发领域内广受赞誉的知名企业,担任产品经理一职。今天,我怀着无比激动的心情,与大家分享一种正在全球范围内掀起革新浪潮的新型商业模式——消费增值模式。 近年来…

java项目总结4

目录 1.正则表达式 2.爬虫 3.时间 4.包装类 5.工具类之Arrays 6.Lambda 1.正则表达式 用于验证字符串是否满足自己所需要的规则。方法:matches 注意:\在Java中有特殊涵义,是将其它的意思本来化,假设"是用来引…

【python基础】—入门函数print()的参数解析及使用场景

文章目录 一、print()函数二、区隔符—sep三、结束符号—end四、内容写入文件—file五、缓冲输出设置—flush 一、print()函数 功能 print()函数就是把一个或多个对象转换为其文本表达式形式,然后发送给标准输出流或者类似的文件流。 语法 print(value, …, sep’ …

逆向分析之电脑端如何调试一些只能手机端浏览器才可以打开的网站

手机端浏览器的指纹和电脑端浏览器的指纹是不同的,这样只在手机端浏览器运行的网站则可以检测网站是否满足手机端浏览器指纹的要求,不满足则可以进行一些反爬措施。 例如一些公众号,其实就是使用手机端浏览器打开的H5网站,就可以进行手机端浏览器指纹检测。 这里只是讲解下…

「AI绘画Stable Diffusion 零基础入门必看」ControlNet控制网:轻松控制你的AI绘画出图效果详解

大家好,我是灵魂画师向阳 前言 AI绘画Stable Diffusion 在 ControlNet 出现之前,基于扩散模型的 AI 绘画是极难控制的,因为扩散的过程充满了随机性。 如果只是纯粹自娱自乐,这种随机性并不会带来多大困扰;但在产业化…

如何高效学习(一)

什么是学习?学习的本质是什么?如何学习?如何更加高效的学习 以下内容均为观看B站UP主(硬核学长2077)所做总结和自我分析 一、自我介绍 ​ 我,一个二三线城市小小程序员,在高中学习就很一般,但当时并没有特…

Object方法重写

这篇文章大家随意看看就好,只是一点理解的东西,当然你也可以认真调查。 我们需要知道Obecj是java中的一个类,是所有类的父类,即超类。对,超级赛亚人的那个超。 我们需要关注其中的equals、tostring这两个方法。 例如&…

电脑管理软件是什么?电脑管理软件能做什么?

电脑管理软件是一种专门设计用于管理和优化计算机系统的软件工具。它涵盖了多个方面,从系统维护、资源分配到安全防护,都有着广泛的应用。以下是对电脑管理软件及其功能的详细解析: 一、电脑管理软件的定义 电脑管理软件是一种管理类型的软…

宿州降本 提质 增效 数据采集监控平台提高生产自动化水平

在当今竞争激烈的市场环境中,企业追求降本、提质、增效已成为发展的关键。而我们的[数据采集监控平台名称]数据采集监控平台,正是助力企业实现这一目标的强大工具。 LP-SCADA数据采集监控平台是工业4.0中主要的数据采集系统之一,主要针对产线…

SimLab 流体网格建模工具详解 Part2: Mesh

SimLab的建模功能 SimLab中和流体网格建模相关的功能主要集成在 Geometry 和 Mesh 两个标签中。在上期文章中,我们详细介绍了Geometry标签中的内容,本期文章我们将分享继续分享 Mesh 标签的内容,一起来看看吧。 Mesh 标签 标签下的工具生成网…

南方CASS:测绘工作者的得力助手

初识南方CASS 南方CASS,这款软件在我的工作和生活中扮演了不可或缺的角色。作为一名长期的使用者,我深感它的功能之强大与便捷。今天,我愿以季羡林先生的口吻,带大家走进南方CASS的世界,分享我与它的点滴故事。 功能…

深入解析【C++ list 容器】:高效数据管理的秘密武器

目录 1. list 的介绍及使用 1.1 list 的介绍 知识点: 小李的理解: 1.2 list 的使用 1.2.1 list 的构造 知识点: 小李的理解: 代码示例: 1.2.2 list 迭代器的使用 知识点: 小李的理解&#xff1…

基于STM32的气压检测报警proteus仿真设计(仿真+程序+设计报告+讲解视频)

基于STM32的气压检测报警proteus仿真设计 1.主要功能2.仿真3. 程序4. 设计报告5. 资料清单&下载链接资料下载链接: 基于STM32的气压检测报警proteus仿真设计(仿真程序设计报告讲解视频) 仿真图proteus 8.9 程序编译器:keil 5 编程语言…

【Linux】多线程_1

文章目录 九、多线程1. 线程概念2. 线程的控制 未完待续 九、多线程 1. 线程概念 我们知道:进程 内核数据结构 进程代码和数据 。那什么是线程呢?线程是进程内部的一个执行分支。一个进程内部可以有多个执行流(内核数据结构)&…

如何用Vue3和Plotly.js创建交互式平行坐标图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 Vue.js 中使用 Plotly.js 创建平行坐标图 应用场景介绍 平行坐标图是一种可视化高维数据集的强大技术。它可以帮助我们探索不同维度之间的关系,并识别模式和异常值。在 Vue.js 应用程序中&#xf…

telnet在windows和linux上的使用方法

telnet在windows上使用 ‘telnet’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 windows上有自带的telnet工具的,这只是没有安装添加进来而已。 处理 方法: 打开控制面板-点击程序与功能 进到程序与功能界面,点击启用或…