【MySQL 20题练习 包含:select,join,union,where 等复合语句】

MySQL 20题练习

  • 数据介绍
  • 一:基于数据结构编写每张表建表语句
  • 二:将下列数据加载到MySQL中
  • 三、使用SQL完成下面需求
    • 1. 列出至少有一个员工的所有部门。
    • 2. 列出薪金比“SMITH”多的所有员工。
    • 3. 列出所有员工的姓名及其直接上级的姓名。
    • 4. 列出受雇日期早于其直接上级的所有员工。
    • 5. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
    • 6. 列出所有“CLERK”(办事员)的姓名及其部门名称。
    • 7. 列出最低薪水大于1500的各种工作。
    • 8. 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号
    • 9. 列出薪金高于公司平均薪金的所有员工。
    • 10.列出与“SCOTT”从事相同工作的所有员工。
    • 11.列出薪水等于部门30中员工的薪水的所有员工的姓名和薪水。
    • 12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
    • 13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
    • 14.列出所有员工的姓名、部门名称和工资。
    • 15.列出所有部门的详细信息和部门人数。
    • 16.列出各种工作的最低工资。
    • 17.列出各个部门的MANAGER(经理)的最低薪金。
    • 18.列出所有员工的年工资,按年薪从低到高排序。
    • 19. 列出每个部门薪水前两名最高的人员名称以及薪水。
    • 20. 列出每个员工从受雇开始到2018-12-12 为止共受雇了多少天。

数据介绍

  • 员工信息表emp

字段:
员工id,员工名字,工作岗位,部门经理,受雇日期,薪水,奖金,部门编号

英文名:emp_no,ename,job,mgr,hire_date,sal,bonus,dept_no

  • 部门信息表dept

字段:部门编号,部门名称,部门地点
英文名:dept_no,dept_name,dept_addr

一:基于数据结构编写每张表建表语句

create table IF NOT EXISTS emp(emp_no int,ename varchar(255),job varchar(255),mgr int ,hire_date DATE,sal int,bonus int,dept_no int
);create table IF NOT EXISTS dept(dept_no int,dept_name varchar(255),dept_addr varchar(255)
)

二:将下列数据加载到MySQL中

  • 员工数据:
7369,SMITH,CLERK,7902,1980-12-17,800,null,20
7499,ALLEN,SALESMAN,7698,1981-02-20,1600,300,30
7521,WARD,SALESMAN,7698,1981-02-22,1250,500,30
7566,JONES,MANAGER,7839,1981-04-02,2975,null,20,
7654,MARTIN,SALESMAN,7698,1981-09-28,1250,1400,30
7698,BLAKE,MANAGER,7839,1981-05-01,2850,null,30
7782,CLARK,MANAGER,7839,1981-06-09,2450,null,10
7788,SCOTT,ANALYST,7566,1987-04-19,3000,null,20
7839,KING,PRESIDENT,null,1981-11-17,5000,null,10
7844,TURNER,SALESMAN,7698,1981-09-08,1500,0,30
7876,ADAMS,CLERK,7788,1987-05-23,1100,null,20
7900,JAMES,CLERK,7698,1981-12-03,950,null,30
7902,FORD,ANALYST,7566,1981-12-03,3000,null,20
7934,MILLER,CLERK,7782,1982-01-23,1300,null,10
  • 部门数据:
10,ACCOUNTING,NEW YORK
10,ACCOUNTING,shanghai
20,RESEARCH,DALLAS
30,SALES,CHICAGO
40,OPERATIONS,BOSTON

三、使用SQL完成下面需求

薪水 = SAL
薪金 = 12SAL加奖金
年工资 = 年薪 = 12
SAL

1. 列出至少有一个员工的所有部门。

select 	e.dept_no,count(*) as cnt
from emp e 
group by e.dept_no
having cnt > 4;

2. 列出薪金比“SMITH”多的所有员工。

select 	ename,sal*12+e.bonus as total
from emp e 
where (sal*12+e.bonus) > (select sal*12+e.bonus from emp e where e.ename='SMITH');

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

select 	e.ename as yg_name,em.ename as sj_name
from emp e
left join emp em
on e.mgr=em.emp_no;

4. 列出受雇日期早于其直接上级的所有员工。

select 	*
from emp e
left join emp em
on e.mgr=em.emp_no
where e.hire_date < em.hire_date;select 	*
from emp e,emp em
where e.mgr=em.emp_no and e.hire_date < em.hire_date;

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

select t1.dept_name,t2.*
from (select 	distinct d.dept_no,d.dept_name from dept d) t1
left join emp t2
on t1.dept_no=t2.dept_no;

6. 列出所有“CLERK”(办事员)的姓名及其部门名称。

select distinct emp.ename,dept.dept_name 
from emp 
join dept 
on emp.dept_no=dept.dept_no 
where job='CLERK';select distinct emp.ename,dept.dept_name 
from emp ,dept 
where emp.dept_no=dept.dept_no 
and job='CLERK';

7. 列出最低薪水大于1500的各种工作。

select job,min(sal) as min_sal
from emp 
group by job
having min_sal>1500;

8. 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号

select * 
from emp,dept 
where emp.dept_no=dept.dept_no and dept.dept_name='SALES';

9. 列出薪金高于公司平均薪金的所有员工。

select 	ename,sal*12+e.bonus as total
from emp e 
where (sal*12+e.bonus) > (select avg(sal*12+bonus) from emp);

10.列出与“SCOTT”从事相同工作的所有员工。

select * from emp where job = 
(select job from emp where ename='SCOTT') and ename!='SCOTT';

11.列出薪水等于部门30中员工的薪水的所有员工的姓名和薪水。

select * from emp where sal in (
select sal from emp e where e.dept_no=30) and dept_no!=30;

12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

select * from emp where (12*sal+bonus) > (
select max(12*sal + bonus) from emp e where e.dept_no=30) and dept_no!=30; 

13.列出在每个部门工作的员工数量、平均工资和平均服务期限。

select 	e.dept_no,count(*) as cnt,avg(sal),avg(DATEDIFF(NOW(),e.hire_date))
from emp e
group by e.dept_no

14.列出所有员工的姓名、部门名称和工资。

select 	e.ename,de.dept_name,e.sal
from emp e
join dept de
on e.dept_no=de.dept_no;

15.列出所有部门的详细信息和部门人数。

select distinct t1.dept_no,t1.dept_name,t2.cnt
from dept t1
join (select dept_no,count(*) as cnt from emp group by dept_no) t2
on t1.dept_no=t2.dept_no;

16.列出各种工作的最低工资。

select job,min(sal) from emp group by job

17.列出各个部门的MANAGER(经理)的最低薪金。

select 	dept_no,min(sal*12+bonus) as min_total
from emp
where job='MANAGER'
group by dept_no;

18.列出所有员工的年工资,按年薪从低到高排序。

select *,12*sal as total
from emp
order by total 

19. 列出每个部门薪水前两名最高的人员名称以及薪水。

select t2.*
from (select 	dept_no,max(sal) as max_salfrom emp where sal not in (select max(sal) max_sal from emp group by dept_no)group by dept_nounion select dept_no,max(sal) max_sal from emp group by dept_no) as t1
join emp t2
on t1.dept_no = t2.dept_no and t1.max_sal=t2.sal

20. 列出每个员工从受雇开始到2018-12-12 为止共受雇了多少天。

select * ,DATEDIFF('2018-12-12',hire_date)
from emp

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

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

相关文章

viple模拟器使用(四):unity模拟器中实现两距离局部最优迷宫算法

名字解读 两距离&#xff1a;指的是左侧距离和右侧距离 局部最优&#xff1a;对当前状态来说最好的选择&#xff0c;至于整体能不能达到最优&#xff0c;是无法确定的。 从节点1到节点5&#xff0c;一共有3条路 第1条路线&#xff1a;1→2→4→5&#xff0c;对应的花销是&…

机器学习笔记 - 什么是模型量化压缩技术?

一、简述 我们都知道现实世界是连续的状态,而计算机世界是离散的状态,这是什么意思呢?我们看一下下图,最右边的马力欧(高清)的状态,可以想象现实世界是连续的状态,而电脑世界在图像上呈现的是一格一格子的状态(左图)是离散的状态。 所以在计算机世界如果想要…

51单片机应用从零开始(十)·指针

指针 C语言指针是一种保存变量地址的数据类型。它可以让程序直接访问内存中的数据&#xff0c;而不需要通过变量名来访问。指针变量存储的是一个地址&#xff0c;这个地址指向内存中的某个位置&#xff0c;该位置存储了一个值。 在C语言中&#xff0c;可以使用&运算符取得一…

【计算机网络笔记】物理层——数据通信基础

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

绝地求生在steam叫什么?

绝地求生在Steam的全名是《PlayerUnknowns Battlegrounds》&#xff0c;简称为PUBG。作为一款风靡全球的多人在线游戏&#xff0c;PUBG于2017年3月23日正式上线Steam平台&#xff0c;并迅速成为一部热门游戏。 PUBG以生存竞技为核心玩法&#xff0c;玩家将被投放到一个辽阔的荒…

【Unity入门】脚本生命周期简介及MonoBehaviour常用方法

脚本生命周期简介 脚本作为我们游戏的“灵魂”&#xff0c;往往不单独存在&#xff0c;而是经常作为组件的形式挂载到特定的游戏物体身上&#xff0c;比如: 游戏主角&#xff0c;敌人&#xff0c;Boss&#xff0c;子弹&#xff0c;建筑物…脚本的生命周期&#xff0c;也就是所…

CRM简单小结

思想 对于三层架构&#xff0c;一个模块对应一个controller&#xff0c;controller实际就是Servlet&#xff1b;一张表对应一个domain类对应一个dao接口对应一个mapper文件&#xff1b;service层没有严格规定&#xff0c;如果两张表内容相近&#xff0c;用一个service接口也可以…

集成学习(Ensemble Learning)

集成学习&#xff08;Ensemble Learning&#xff09;详解 集成学习是一种机器学习方法&#xff0c;它结合了多个模型的预测结果以提高整体性能。这种方法的基本思想是&#xff0c;多个模型一起工作比单个模型单独工作更有效。 集成学习的核心概念 1. 弱学习器&#xff08;We…

数据结构:图文详解双向链表的各种操作(头插法,尾插法,任意位置插入,查询节点,删除节点,求链表的长度... ...)

目录 一.双向链表的概念 二.双向链表的数据结构 三.双向链表的实现 节点的插入 头插法 尾插法 任意位置插入 节点的删除 删除链表中第一次出现的目标节点 删除链表中所有与关键字相同的节点 节点的查找 链表的清空 链表的长度 四.模拟实现链表的完整代码 前言&am…

检测下我的饺子皮擀的怎么样(圆度)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 各位老铁周末愉快。 快乐的时间做充实的事&#xff0c;好久没有吃饺子了&#xff0c;俗话说好吃不过饺子。 我个人觉得会包饺子不算本事&#xff0c;会擀饺子皮…

Linux 上的容器技术

容器实现封闭的环境主要要靠两种技术&#xff0c;一种是看起来是隔离的技术&#xff0c;称为 namespace&#xff08;命名空间&#xff09;。在每个 namespace 中的应用看到的&#xff0c;都是不同的 IP 地址、用户空间、进程 ID 等。另一种是用起来是隔离的技术&#xff0c;称为…

C/C++STL学习[1]---顺序容器阐述、对比、选择vector,deque,list,forward_list,array,string

文章目录 前言1. 顺序介绍2. 容器对比说明3. 容器选择总结 前言 STL系列博客开篇&#xff0c;记录一下自己学CSTL相关的心得。 这篇博客主要是写顺序容器的类型以及各个容器之间的异同还有平时对容器使用的选择。 1. 顺序介绍 顺序容器表示这个容器提供了快速顺序访问元素的能…

【csdn默认使用操作详解】

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

芋道源码ruoyi-vue-pro项目前端yarn下载报错

安装了node最新的版本20.10.0&#xff0c;结果yarn下载依赖报错。 D:\code\IdeaProject\ruoyi-vue-pro\yudao-ui\yudao-ui-admin-vue2-master>yarn -install error achrinza/node-ipc9.2.2: The engine "node" is incompatible with this module. Expected versi…

使用PCSS实现的实时阴影效果

PCSS的技术可以使得阴影呈现出近硬远软的效果&#xff0c;并且能够实时实现。 其核心理念是通过模拟光源的面积来产生更自然、更柔和的阴影边缘。 具体步骤&#xff1a; 1、生成shadowmap 2、在进行阴影的比较时候进行平均&#xff0c;并非之前的shadow map 或者之后完全的阴影…

纯代码压缩WordPress前端Html

易于阅读的前端代码对开发而言是无比重要的&#xff0c;但对于浏览器来说就显得无比鸡肋了&#xff0c;毕竟浏览器不是像人眼一样看代码&#xff0c;过多的换行和空格&#xff0c;对前台加载是有一定影响的&#xff0c;对使用大带宽高配置服务器的网站&#xff0c;这么点影响可…

【Arduino库之:FastLED库】

FastLED 是一款功能强大&#xff0c;简单易用的控制WS2812, LPD8806, 等LED光带的Arduino第三方库。 第一&#xff1a;基础显示 led [ 0 ] CRGB::Red; //为第一个灯珠设置红色 FastLED.show(); //这个作用才会显示 示例程序&#xff1a; 此程序展示了FASTLED库控制WS2821…

YOLOv8创新魔改教程(二)如何添加注意力机制

YOLOv8创新魔改教程&#xff08;二&#xff09;如何添加注意力机制 &#xff08;一&#xff09;找代码 github找各种注意力机制的代码 &#xff08;二&#xff09;融合 1.创建文件 在ultralytics/nn/attention.py创建attention.py 文件 将找到的代码粘贴进来 2.修改task…

【计算机组成原理】存储器知识

目录 1、存储器分类 1.1、按存储介质分类 1.2、按存取方式分类 1.3、按信息的可改写性分类 1.4、按信息的可保存性分类 1.5、按功能和存取速度分类 2、存储器技术指标 2.1、存储容量 2.2、存取速度 3、存储系统层次结构 4、主存的基本结构 5、主存中数据的存放 5.…

prometheus|云原生|轻型日志收集系统loki+promtail的部署说明

一&#xff0c; 日志聚合的概念说明 日志------ 每一个程序&#xff0c;服务都应该有保留日志&#xff0c;日志的作用第一是记录程序运行的情况&#xff0c;在出错的时候能够记录错误情况&#xff0c;简单来说就是审计工作&#xff0c;例如nginx服务的日志&#xff0c;kuber…