数据库的多表查询(MYSQL)表表联立

根据以上三张表格,对三张表格进行不同的联立,查询并显示符合条件的内容。

1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。


mysql> SELECT d.deptno AS 部门编号, d.dname as 部门名称, d.loc as 部门位置, COUNT(e.empno) as 部门人数 FROM dept d
JOIN employee e ON d.deptno = e.deptno
GROUP BY d.deptno, d.dname, d.loc;

+----------+----------+----------+----------+
| 部门编号 | 部门名称 | 部门位置 | 部门人数 |
+----------+----------+----------+----------+
|       10 | 教研部   | 北京     |        3 |
|       20 | 学工部   | 上海     |        5 |
|       30 | 销售部   | 广州     |        6 |
|       50 | 保洁部   | 武汉     |        1 |
+----------+----------+----------+----------+
4 rows in set

2. 列出所有员工的姓名及其直接上级的姓名。


mysql> SELECT e1.ename AS 员工姓名, e2.ename AS 上级姓名
FROM employee e1
LEFT JOIN employee e2 ON e1.mgr = e2.empno;

+----------+----------+
| 员工姓名 | 上级姓名 |
+----------+----------+
| 甘宁     | 庞统     |
| 黛琦丝   | 关羽     |
| 殷天正   | 关羽     |
| 刘备     | 曾阿牛   |
| 谢逊     | 关羽     |
| 关羽     | 曾阿牛   |
| 张飞     | 曾阿牛   |
| 诸葛亮   | 刘备     |
| 曾阿牛   | NULL     |
| 韦一笑   | 关羽     |
| 周泰     | 诸葛亮   |
| 程普     | 关羽     |
| 庞统     | 刘备     |
| 黄盖     | 张飞     |
| 张三     | 甘宁     |
+----------+----------+
15 rows in set


3. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。


mysql> SELECT e1.empno as 员工编号, e1.ename as 员工姓名, d.dname as 部门名称 
FROM employee e1
JOIN employee e2 ON e1.mgr = e2.empno
JOIN dept d ON e1.deptno = d.deptno
WHERE e1.hiredate < e2.hiredate;

+----------+----------+----------+
| 员工编号 | 员工姓名 | 部门名称 |
+----------+----------+----------+
|     1007 | 张飞     | 教研部   |
|     1001 | 甘宁     | 学工部   |
|     1004 | 刘备     | 学工部   |
|     1002 | 黛琦丝   | 销售部   |
|     1003 | 殷天正   | 销售部   |
|     1006 | 关羽     | 销售部   |
+----------+----------+----------+
6 rows in set


4. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。


mysql> SELECT d.dname, e.empno, e.ename
FROM dept d
LEFT JOIN employee e ON d.deptno = e.deptno;

+--------+-------+--------+
| dname  | empno | ename  |
+--------+-------+--------+
| 教研部 |  1007 | 张飞   |
| 教研部 |  1009 | 曾阿牛 |
| 教研部 |  1014 | 黄盖   |
| 学工部 |  1001 | 甘宁   |
| 学工部 |  1004 | 刘备   |
| 学工部 |  1008 | 诸葛亮 |
| 学工部 |  1011 | 周泰   |
| 学工部 |  1013 | 庞统   |
| 销售部 |  1002 | 黛琦丝 |
| 销售部 |  1003 | 殷天正 |
| 销售部 |  1005 | 谢逊   |
| 销售部 |  1006 | 关羽   |
| 销售部 |  1010 | 韦一笑 |
| 销售部 |  1012 | 程普   |
| 财务部 | NULL  | NULL   |
| 保洁部 |  1015 | 张三   |
+--------+-------+--------+
16 rows in set


5. 列出最低薪金大于15000的各种工作及从事此工作的员工人数。


mysql> SELECT job, COUNT(*) AS 员工人数
FROM employee
WHERE job IN (SELECT DISTINCT job FROM employee WHERE sal > 15000)
GROUP BY job;

+--------+----------+
| job    | 员工人数 |
+--------+----------+
| 销售员 |        4 |
| 经理   |        3 |
| 分析师 |        2 |
| 董事长 |        1 |
| 保洁员 |        1 |
+--------+----------+
5 rows in set


6. 列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。


mysql> SELECT ename
FROM employee
WHERE deptno = (SELECT deptno FROM dept WHERE dname = '销售部');

+--------+
| ename  |
+--------+
| 黛琦丝 |
| 殷天正 |
| 谢逊   |
| 关羽   |
| 韦一笑 |
| 程普   |
+--------+
6 rows in set


7. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导,工资等级。


mysql> SELECT e.ename, e.job, e.sal, e.mgr, e2.ename AS 上级领导,d.dname
FROM employee e
JOIN dept d ON e.deptno = d.deptno
JoIN employee e2 oN e.mgr = e2 .empno
JOIN (
  SELECT AVG(sal) AS average_salary
  FROM employee
) AS a ON e.sal > a.average_salary;
+--------+--------+-------+------+----------+--------+
| ename  | job    | sal   | mgr  | 上级领导 | dname  |
+--------+--------+-------+------+----------+--------+
| 刘备   | 经理   | 29750 | 1009 | 曾阿牛   | 学工部 |
| 关羽   | 经理   | 28500 | 1009 | 曾阿牛   | 销售部 |
| 诸葛亮 | 分析师 | 30000 | 1004 | 刘备     | 学工部 |
| 庞统   | 分析师 | 30000 | 1004 | 刘备     | 学工部 |
| 张三   | 保洁员 | 80000 | 1001 | 甘宁     | 保洁部 |
+--------+--------+-------+------+----------+--------+
5 rows in set

8.列出与庞统从事相同工作的所有员工及部门名称。


mysql> SELECT e.ename, d.dname AS 部门名称
FROM employee e
JOIN dept d ON e.deptno = d.deptno
WHERE e.job = (SELECT job FROM employee
WHERE ename = '庞统');
+--------+----------+
| ename  | 部门名称 |
+--------+----------+
| 诸葛亮 | 学工部   |
| 庞统   | 学工部   |
+--------+----------+
2 rows in set
9.列出薪金高于部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。
mysql> SELECT e.ename, e.sal, d.dname
FROM employee e
JOIN dept d ON e.deptno = d.deptno
WHERE e.sal > (
  SELECT MAX(sal)
  FROM employee
  WHERE deptno = 30
);
+--------+-------+--------+
| ename  | sal   | dname  |
+--------+-------+--------+
| 刘备   | 29750 | 学工部 |
| 诸葛亮 | 30000 | 学工部 |
| 曾阿牛 | 50000 | 教研部 |
| 庞统   | 30000 | 学工部 |
| 张三   | 80000 | 保洁部 |
+--------+-------+--------+
5 rows in set

10.查出年份、利润、年度增长比。


mysql> SELECT year,zz, 
(zz - LAG(zz, 1, 0) OVER (ORDER BY year)) / LAG(zz, 1, 0) OVER (ORDER BY year) AS 年度增长比 
FROM lirun;

+------+------+------------+
| year | zz   | 年度增长比 |
+------+------+------------+
| 2010 |  100 | NULL       |
| 2011 |  150 | 0.5000     |
| 2012 |  250 | 0.6667     |
| 2013 |  800 | 2.2000     |
| 2014 | 1000 | 0.2500     |
+------+------+------------+
5 rows in set

源码在码云Gitee:
数据库的多表查询(MYSQL)表表联立 · zyt/麦当劳投资人 - Gitee.comicon-default.png?t=N7T8https://gitee.com/zytscode/mcdonalds-investors/blob/master/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E5%A4%9A%E8%A1%A8%E6%9F%A5%E8%AF%A2%EF%BC%88MYSQL%EF%BC%89%E8%A1%A8%E8%A1%A8%E8%81%94%E7%AB%8B

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

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

相关文章

长沙电信大楼火灾调查报告发布:系烟头引发。FIS来护航安全

近日&#xff0c;长沙电信大楼的火灾调查报告引起广泛关注。调查发现&#xff0c;火灾是由未熄灭的烟头引发&#xff0c;烟头点燃了室外平台的易燃物&#xff0c;迅速蔓延至整个建筑。这起悲剧再次提醒我们&#xff0c;小小的疏忽可能酿成大灾难。但如果我们能及时发现并处理这…

大模型的RPA应用 | 代理流程自动化(APA),开启智能自动化新纪元

随着技术创新的持续推进&#xff0c;自动化技术已经变得至关重要&#xff0c;成为驱动企业和社会向前发展的核心动力。在自动化的里程碑中&#xff0c;机器人流程自动化&#xff08;RPA&#xff09;已经有效地将简单、重复且规则性的任务自动化。可是随着对处理更为复杂、多变且…

P29 C++箭头运算符以及它对于结构体与类的指针关系

本期的主要内容是箭头运算符以及它对于结构体与类的指针可以做什么&#xff0c;最后实现我们自己的运算符重载。 01 为什么要使用运算符重载 从开发的角度而言&#xff0c;运算符重载的存在是为了提高开发效率&#xff0c;增加代码的可复用性&#xff0c;很多时候简化了代码。…

XIAO ESP32S3之模型部署

参考资料&#xff1a; sipeed AI教程&#xff1a;AI 指南 - Sipeed Wiki TinyMX:https://github.com/sipeed/TinyMaix EdgeLab:https://edgelab.readthedocs.io/zh-cn/latest/ sscma-example-esp32:GitHub - Seeed-Studio/sscma-example-esp32: Example of SenseCraft Mode…

【开源】基于Vue+SpringBoot的高校宿舍调配管理系统

项目编号&#xff1a; S 051 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S051&#xff0c;文末获取源码。} 项目编号&#xff1a;S051&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统…

Go语言与Java:一场编程语言之争

近年来&#xff0c;Go语言&#xff08;简称Go&#xff09;的崛起引发了对编程语言选择的深刻思考。Java&#xff0c;作为一门经典的编程语言&#xff0c;长期以来一直是企业级应用的首选。 然而&#xff0c;随着Go的逐渐成熟和广泛应用&#xff0c;人们开始重新评估Java是否仍…

Android系统源码中添加可编译运行执行程序,java

文章目录 Android系统源码中添加可编译运行执行程序&#xff0c;java1.Android设备中执行编译运行java代码2.编译执行jar包 Android系统源码中添加可编译运行执行程序&#xff0c;java 1.Android设备中执行编译运行java代码 新建一个文件夹&#xff0c;以及Java类的包路径 测…

linux 消息队列apache-activemq服务的安装

1.下载 官网下载地址&#xff1a;https://activemq.apache.org/ 操作如下&#xff1a; 2. 解压 执行&#xff1a;tar -zxvf apache-activemq-5.18.3-bin.tar.gz -C /user/ 3. 进入目录 执行&#xff1a;cd /user/apache-activemq-5.18.3 4.修改配置文件 执行&#xff1…

深度学习(二):pytorch基础知识

pytorch基础知识 张量&#xff08;Tensors&#xff09;自动微分&#xff08;Autograd&#xff09;模型构建数据加载和处理损失函数优化器&#xff08;Optimizers&#xff09;训练循环GPU加速模型保存和加载部署和推理PyTorch生态系统学习率调度&#xff08;Learning Rate Sched…

Java研学-IO流(二)

三 流资源类结构 1 Java中的流资源可操作文件中的数据 – IO流 ① 将数据写入到指定的文件中 ② 将数据从指定的文件中读出 2 分类 – 四大基流,八大子流 按照流向分:输入流和输出流 按照操作数据源的类型分: ① 字符流 Reader – 字符输入流 – InputStream – 基流 FileR…

基于单片机的电子密码锁设计

1&#xff0e;设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的电子密码锁&#xff0c;可设置四位密码&#xff0c;输入错误三次&#xff0c;报警灯亮起&#xff08;红灯亮起&#xff09;&#xff0c;输入正确&#xff0c;绿灯闪烁三次。可通过LCD显示屏查看密码&…

LeetCode200. Number of Islands——DFS

文章目录 一、题目二、题解 一、题目 Given an m x n 2D binary grid grid which represents a map of 1’s (land) and 0’s (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertic…

智能生活:人工智能如何改变我们的日常

在科技迅猛发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;已成为我们生活中的一部分。这项技术不仅仅是冷冰冰的代码和算法&#xff0c;而是一个全新的帮手&#xff0c;为我们的日常生活带来了前所未有的便利和智慧。本文旨在探讨人工智能如何影响我们的生活&#…

堆栈_栈实现队列

//请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; // // 实现 MyQueue 类&#xff1a; // // // void push(int x) 将元素 x 推到队列的末尾 // int pop() 从队列的开头移除并返回元素…

Linux常用命令----history命令

文章目录 在Linux中&#xff0c;history命令是一个极其有用的工具&#xff0c;它可以帮助用户查看和管理之前执行过的命令历史。这个功能对于快速查找和重用之前的命令特别有帮助。下面&#xff0c;我们将通过一些实例&#xff0c;详细介绍history命令的使用方法。 1. 基本使用…

ElasticSearch03

高级客户端 参考&#xff1a;尚硅谷网课以及笔记 Java REST Client 有两种风格&#xff1a; Java Low Level REST Client &#xff1a;用于Elasticsearch的官方低级客户端。它允许通过HTTP与Elasticsearch集群通信。将请求编排和响应反编排留给用户自己处理。它兼容所有的Elas…

高效率:使用DBeaver连接spark-sql

提高运行效率一般采取底层使用spark引擎替换成hive引擎的方式提高效率&#xff0c;但替换引擎配置较为复杂考虑到兼容版本且容易出错&#xff0c;所以本篇将介绍使用DBeaver直接连接spark-sql快速操作hive数据库。 在spark目录下运行以下命令&#xff0c;创建一个SparkThirdSe…

11-28 SpringBoot1

约定大于配置 简化Spring开发, spring boot致力于简洁&#xff0c;让开发者写更少的配置&#xff0c;程序能够更快的运行和启动。它是下一代javaweb框架&#xff0c;并且它是spring cloud(微服务)的基础。dev-ops:开发者,运维者。 springboot特点:优点面试重点 1)为基于Spring…

C++学习专栏【基础知识1】C++程序结构命名空间关键字标识符三字符序列

一、C程序结构 让我们看一个简单的代码&#xff0c;它将打印Hello World一词。 #include <iostream> using namespace std; int main() {cout << "Hello World"; // prints Hello Worldreturn 0; } C语言定义了几个头文件&#xff0c;其中包含对你的程序…

系统部署安装-Centos7-Kafka

文章目录 安装离线安装下载安装 安装 离线安装 下载 可以前往kafka的官网进行下载 https://kafka.apache.org/downloads安装 1.创建安装目录 mdkir /opt/software/kafka mkdir /opt/kafka 2.解压 sudo tar -xzf kafka_2.12-3.6.0.tgz -C /opt/kafka --strip-components…