有关部门信息表与员工信息表的常用SQL应用语句实现汇总

news2024/11/24 0:14:37

背景条件

已知有员工信息表(emp)部门信息表(dept),具体表的信息如下:

员工信息表emp:

列名类型其他备注
empnoDECIMAL(4)主键员工编号
enameVARCHAR2(10)员工姓名
jobVARCHAR2(9)工种
mgrDECIMAL(4)管理者代码
hiredateDATE雇佣时间
salDECIMAL(7,2)月收入
commDECIMAL(7,2)提成
deptnoDECIMAL(2)外键所属部门编号

部门信息表dept:

列名类型其他备注
deptnoDECIMAL(2)主键部门编号
dnameVARCHAR2(14)部门名称
locVARCHAR2(13)地理位置

下面我们使用上述两个表,实现如下功能的SQL语句编写:

  1. 将自己的信息插入emp表,具体数据要求如示例
  2. 将所有人的薪水增加25%
  3. 列出受雇日期早于他上级的所有员工
  4. 列出超出部门平均员工数的那些部门名称及人数
  5. 列出所有的部门和部门员工的所有信息,没有员工的部门也要显示
  6. 列出每个部门中入职时间最早的那些员工的名字及工龄(与现在日期比)
  7. 列出薪金(收入+提成,下同)比CLARK高的雇员名字、工种、部门名称、薪金
  8. 列出薪金高于部门平均水平的所有雇员名字、薪金、部门名称
  9. 列出所有的员工的名字、上级的名字、部门名称

预备工作

实验环境:Navicat 16 for MySQL
在数据库中建立这两个表
如图:

  1. 员工信息表中引用了部门信息表的deptno,作为外键,所以应当先建立部门信息表dept
    在这里插入图片描述
  2. 建立员工信息表emp并设置外键
    在这里插入图片描述
    在这里插入图片描述
  3. 添加一些事例数据进去
    在这里插入图片描述
    在这里插入图片描述

将自己的信息插入emp表,具体数据要求如示例

示例:
在这里插入图片描述

SQL语句

INSERT INTO emp
VALUES (9999,'somebody','analyst',7566,'2023-06-01',8000,0,20);

将所有人的薪水增加25%

SQL语句

update emp set sal = sal*1.25;

效果

在这里插入图片描述


列出受雇日期早于他上级的所有员工

SQL语句

select a.*
from emp a join emp b
on a.mgr = b.empno join dept d
on a.deptno = d.deptno
where a.hiredate < b.hiredate;

效果

在这里插入图片描述


列出超出部门平均员工数的那些部门名称及人数

SQL语句

SELECT d.dname, COUNT(*) AS employee_count
FROM emp e
JOIN dept d ON e.deptno = d.deptno
GROUP BY e.deptno
HAVING COUNT(*) > (
  SELECT AVG(emp_count)
  FROM (
    SELECT COUNT(*) AS emp_count
    FROM emp,dept
    WHERE emp.deptno = dept.deptno
    GROUP BY emp.deptno
  ) AS dept_emp
);

效果

在这里插入图片描述


列出所有的部门和部门员工的所有信息,没有员工的部门也要显示

SQL语句

select d.dname,e.* 
from emp e right join dept d on e.deptno=d.deptno;

效果

在这里插入图片描述


列出每个部门中入职时间最早的那些员工的名字及工龄(与现在日期比)

SQL语句

SELECT d.dname, e.ename, DATEDIFF(CURDATE(), e.hiredate) as work_age
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE e.hiredate IN (
  SELECT MIN(hiredate)
  FROM emp
  GROUP BY deptno
);

效果

在这里插入图片描述


列出薪金(收入+提成,下同)比CLARK高的雇员名字、工种、部门名称、薪金

SQL语句

SELECT e.ename, e.job, d.dname, (e.sal + IFNULL(e.comm,0)) as total_salary
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE (e.sal + IFNULL(e.comm,0)) > (
  SELECT (sal + IFNULL(comm,0))
  FROM emp
  WHERE ename = 'CLARK'
);

效果

在这里插入图片描述


列出薪金高于部门平均水平的所有雇员名字、薪金、部门名称

SQL语句

SELECT e.ename, (e.sal + IFNULL(e.comm,0)) as total_salary, d.dname
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE (e.sal + IFNULL(e.comm,0)) > (
  SELECT AVG(e2.sal + IFNULL(e2.comm,0))
  FROM emp e2
  WHERE e2.deptno = e.deptno
);

效果

在这里插入图片描述


列出所有的员工的名字、上级的名字、部门名称

SQL语句

select e.ename,m.ename,d.dname 
from emp e,emp m,dept d
where e.mgr = m.empno and e.deptno = d.deptno;

效果

在这里插入图片描述


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

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

相关文章

实现第一个内核程序的Hello World

背景 在内核的开发中&#xff0c;总要先入个门。那么就要来编写第一个内核程序 入门 一个 module_init 程序是Linux内核模块的一部分&#xff0c;通过module_init 方法就能将程序载入内核。 module_init 方法需要以下步骤 编写module_init 的代码&#xff0c;并将其保存为…

异常值检验、方差分析

异常值检验 T-test 参考&#xff1a;1.ttest和ttest2 区别 2. ttest在 matlab 3.T test分布表 方差分析&#xff08;ANOVA&#xff09; Def: 方差分析&#xff08;analysis of variance, ANOVA&#xff09;是一种统计检验&#xff0c;用于检验两组或更多组样本的均值是否相…

Allegro如何关闭出线自动拐弯功能操作指导

Allegro如何关闭出线自动拐弯功能操作指导 在用Allegro进行PCB设计的时候,对单个pin进行出线的时候,会遇到走线一出pin就会自动拐弯,并不会按照鼠标轨迹来设计,如下图 期望的效果如下图 如何关闭走线自动拐弯功能,具体操作如下 点击Route

django-vue-admin使用

一、源码地址 注意&#xff0c;一定要使用这个地址。&#xff08;使用其他地址下载下来的感觉代码缺失&#xff0c;踩了大坑&#xff09; django-vue-admin: 基于RBAC模型的权限控制的一整套基础开发平台&#xff0c;前后端分离&#xff0c;后端采用 djangodjango-rest-frame…

QT实现 WebsocketServer端与WebsocketClient 端通信

概 述 WebSockets 是一种通过单个 TCP 连接提供全双工通信信道的 web 技术。2011年&#xff0c;IETF 将 WebSocket 协议标准化为 RFC 6455 。Qt 提供的 QWebSocket 既可以用于客户端应用程序&#xff0c;也可以用于服务端应用程序&#xff0c;接口大部分和 QTcpSocket 一致。 …

R语言机器学习方法在生态经济学领域中的应用

近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c;目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

MoviePy介绍

MoivePy是一个用于视频编辑的Python库&#xff0c;可以&#xff1a;剪切、拼接、标题插入、视频合成、视频处理和创建自定义效果。它支持Windows、Linux、Mac&#xff0c;源码地址&#xff1a;https://github.com/Zulko/moviepy&#xff0c;最新发布版本v1.0.3&#xff0c;lice…

Qt(C++)开发一款图片防盗用水印制作小工具

一、前言 文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文…

[小白教程] Javascript Callback以及Promise/async/await 一文通

一、最初 一切从 Javascript 是一门异步编程语言说起&#xff0c;比如这种最简单的&#xff1a; let n 0function f1() {setTimeout(function () {n}, 1000)}f1()console.log(n)可能直觉上会觉得最终n1&#xff0c;但实际上打印出来的是0&#xff0c;因为尽管调用了f1函数&am…

vue笔记——实现打印功能1

第一步&#xff1a;安装vue-print-nb,打开项目终端输入 npm install vue-print-nb --save 第二步&#xff1a;打开package.json文件&#xff0c;在dependencies中出现vue-print-nb&#xff0c;说明安装成功&#xff0c;如下图所示。 第三步&#xff1a; 方法一&#xff1a;全…

电子科技大学计算机系统结构复习笔记(二):指令系统

目录 前言 重点一览 指令集系统结构&#xff08;ISA&#xff09;的分类 分类依据 存储结构 区别 图示 通用寄存器系统结构分类 存储器寻址 概述 寻址方式 MIPS寻址模式 小结 操作数类型 指令操作 与指令编码 常用操作数类型 常用指令系统的操作 常用指令系统编…

【Pytorch基础教程40】DLRM推荐算法模型部署

note 文章目录 note一、DLRM模型1. 特征工程和embedding层2. butterfly shuffle3. 模型结构 二、模型部署Reference 一、DLRM模型 DLRM是2020年meta提出的工业界推荐算法模型&#xff0c;模型结构非常简单&#xff0c;也没用到什么attention机制等的东西&#xff0c;更多是注重…

权限维持-关于影子用户

前言 影子用户相信大家都是比较熟悉&#xff0c;是一种权限维持的好方法。 注&#xff1a;单机和域环境都可以使用&#xff0c;但是域中可能没有那么好用。 复现 一.本地 1. 正常的影子用户 我们在cmd命令中在生成用户时&#xff0c;在用户名后面加上$就可以 net user test$ …

【cfeng work】什么是SaaS? SaaS详细介绍

WorkProj 内容管理 SaaSSaaS的优势SaaS的注意项SaaS产品核心组件cfeng结合work理解SaaS 本文introduce SaaS的相关内容 昨天cfeng已经介绍过云原生了&#xff0c;其实就是应用在设计上就要围绕Cloud&#xff0c;代表技术就是容器化和微服务、DevOps和区别于传统瀑布模型的持续更…

【Linux】——多线程

目录 Linux线程概念 二级页表 线程的优点 线程的缺点 线程异常 线程的用途 Linux中的线程和进程 进程和线程 进程的多个线程共享 进程和线程的关系 Linux线程控制 POSIX线程库 线程创建 线程ID及地址空间布局 线程等待 线程终止 Linux线程概念 什…

华为OD机试真题 Java 实现【找终点】【2023 B卷 100分】,附详细解题思路

一、题目描述 给定一个正整数数组&#xff0c;设为nums&#xff0c;最大为100个成员&#xff0c;求从第一个成员开始&#xff0c;正好走到数组最后一个成员&#xff0c;所使用的最少步骤数。 要求&#xff1a; 第一步必须从第一元素开始&#xff0c;且1 < 第一步的步长 &…

初出茅庐的小李博客之CAN通信基础知识

CAN是什么&#xff1f; CAN 是 Controller Area Network 的缩写&#xff0c;中文是控制器局域网路,是 ISO 国际标准化的串行通信协议之一。 CAN:控制器局域网( Controller Area Network)属于现场总线的范畴&#xff0c;是一种有效支持分布式控制系统的串行通信网络 CAN是由德…

MySQL Windows 64位解压版安装

1、下载MySQL安装包 下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 选择安装版本&#xff1a;我选择的是5.1.43的版本&#xff0c;下载到本地&#xff0c;并解压到自己想要放的位置&#xff0c;比如&#xff1a;D:\soft 2、在D:\soft\m…

S7-200 PLC新特性是什么

更多关于西门子S7-200PLC内容请查看&#xff1a;西门子200系列PLC学习课程大纲(课程筹备中) 西门子200PLC能做什么&#xff1f; 它可以控制设备&#xff0c;实现自动控制&#xff0c;比如切割机&#xff0c;木雕刻机&#xff0c;写字机&#xff0c;锅炉的自动控制等等&#xf…

vscode工具使用

语言的使用&#xff1a; 安装chinse Lagnuage插件 关于设置 (1) 通过可视化界面的方式设置&#xff0c;File -> Preferences -> Settings 快捷键&#xff1a;ctrl , (<)打开 ctrl F4 关闭 (2) 通过json配置文件方式设置&#xff0c;ctrlshiftp, 选择Open …