sql知识点

案例1:

 需求:请你查找employees里最晚入职员工的所有信息,以上例子输出如下:
emp_nobirth_datefirst_namelast_namegenderhire_date
100011953-09-02GeorgiFacelloM1986-06-26
100021964-06-02BezaleSimmelF1985-11-21
100031959-12-03PartoBamfordM1986-08-28
100041954-05-01ChristianKoblickM1986-12-01
select * from employees order by hire_date limit 0,1

结果:

emp_nobirth_datefirst_namelast_namegenderhire_date
100041954-05-01ChristianKoblickM1986-12-01
知识点:1.ORDER BY 根据指定的列对结果集进行排序,默认按照升序,降序 ORDER BY DESC2.LIMIT(m, n) 从第 m + 1 行开始取 n 条记录

案例2:

需求:请你查找employees里入职员工时间排名倒数第三的员工所有信息
select * from employees
where hire_date = (select distinct hire_date from employees order by  hire_date desc limit 2,1)

结果:

emp_nobirth_datefirst_namelast_namegenderhire_date
100051955-01-21KyoichiMaliniakM1989-09-12
知识点:desc 降序  asc  升序 去重关键字 distinct

案例3:

有一个全部员工的薪水表salaries简况如下:
emp_nosalaryfrom_dateto_date
10001889582002-06-229999-01-01
10002725272001-08-029999-01-01
10003433112001-12-019999-01-01
有一个各个部门的领导表dept_manager简况如下:
dept_noemp_noto_date
d001100019999-01-01
d002100039999-01-01
需求:请你查找各个部门当前领导的薪水详情以及其对应部门编号dept_no,输出结果以salaries.emp_no升序排序,并且请注意输出结果里面dept_no列是最后一列
select s.emp_no,s.salary,s.from_date,s.to_date,dm.dept_no from salaries as s inner join dept_manager as dm on s.emp_no=dm.emp_no

结果:

emp_nosalaryfrom_dateto_datedept_no
10002725272001-08-029999-01-01d001
10004740572001-11-279999-01-01d004
10005946922001-09-099999-01-01d003
10006433112001-08-029999-01-01d002
知识点:连接查询:表1 left join 表2 on 表1.列名=表2.列名2 (左表全显示,右表显示满足条件的)表1 right join 表2 on 表1.列名=表2.列名2 (右表全显示,左表显示满足条件的)表1 inner join 表2 on 表1.列名=表2.列名2 (左右两表都显示只满足条件的)

案例4:

有一个员工表,如案例1中employees表。
有一个部门表dept_emp,如下:
emp_nodept_nofrom_dateto_date
10001d0011986-06-29999-01-01
10002d0021989-08-039999-01-01
需求:查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示:
select distinct em.last_name ,em.first_name ,dm.dept_no from employees em, dept_emp dm where em.emp_no = dm.emp_no

结果:

last_namefirst_namedept_no
FacelloGeorgid001
SimmelBezaleld002

案例5:

有一个员工表,如案例1中employees表。
有一个部门表,如案例4中的dept_emp表。需求:查找所有已经分配部门的员工的last_name和first_name以及dept_no,也包括暂时没有分配具体部门的员工
select e.last_name,e.first_name,d.dept_no from employees e left join dept_emp d on e.emp_no=d.emp_no

结果:

last_namefirst_namedept_no
FacelloGeorgid001
SimmelBezaleld002
BamfordPartoNone
KoblickChirstianNone

案例6:

有一个薪水表salaries,如下:
emp_nosalaryfrom_dateto_date
10001601171986-06-261987-06-26
10001621021987-06-261988-06-25
10001660741988-06-251989-06-26
10001665961989-06-251990-06-25
10001669611990-06-251991-06-26
10001710461991-06-251992-06-24
10001743331992-06-241993-06-24
10001752861993-06-241994-06-24
10001759941994-06-241995-06-24
10001768841995-06-241996-06-23
10001800131996-06-231997-06-23
10001810251997-06-231998-06-23
10001810971998-06-231999-06-23
10001849171999-06-2332000-06-22
10001851122000-06-222001-06-22
10001850972001-06-222002-06-22
10001725271996-08-031997-08-03
需求:请你查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t
select emp_no,count(emp_no) as t from salaries group by  emp_no having  t>15

结果:

知识点:1.采用聚合函数COUNT()来计算salary字段>15的数量。2.使用聚合函数作为限定条件,则需要使用分组查询GROUP BY
emp_not
1000117

案例6:

有一个员工表dept_emp,如下:
emp_nodept_nofrom_dateto_date
10001d0011986-06-29999-01-01
10002d0011989-08-039999-01-0
10003d0021989-08-039999-01-01
 有一个部门经理表dept_manager,如下:
dept_noemp_nofrom_dateto_date
d001100021996-08-039999-01-01
d002100031990-08-059999-01-01
需求:获取所有的员工和员工对应的经理,如果员工本身是经理的话则不显示
select d.emp_no,dm.emp_no manager from dept_emp d inner join dept_manager dm on d.dept_no=dm.dept_no where d.emp_no != dm.emp_no

结果:

dept_noemp_no
1000110002

案例7:

有一个员工表dept_emp,如案例6.
有一个全部员工的薪水表salaries简况如下:
emp_nosalaryfrom_dateto_date
10001889582002-06-229999-01-01
10002725272001-08-029999-01-01
10003925272001-12-019999-01-01
需求:获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号dept_no升序排列
先查询每个部门中薪资最高的员工,表1
select d.dept_no,max(s.salary) salary
from 
dept_emp d inner join salaries s on d.emp_no=s.emp_no
group by dept_no

结果:

dept_nosalary
d00188958
d00292527

再查询员工、部门、薪水,表2
select d.dept_emp,d.emp_no,s.salary 
from 
dept_emp d inner join salaries s on d.emp_no=s.emp_no

结果:

dept_noemp_nosalary
d0011000188958
d0011000272527
d0021000392527
将表1和表2结合起来,通过内查询找出符合条件的结果
select t1.dept_no,t2.emp_no,t1.salary
from 
(select d.dept_no,max(s.salary) salary
from 
dept_emp d inner join salaries s on d.emp_no = s.emp_no  
group by dept_no) t1
inner join
(select d.dept_no,d.emp_no,s.salary
from 
dept_emp d inner join salaries s on d.emp_no = s.emp_no  ) t2
on t1.dept_no=t2.dept_no and t1.salary=t2.salary
order by 
t1.dept_no

结果:

dept_noemp_nosalary
d0011000188958
d0021000392527

案例8:

有一个员工表employees简况如下
emp_nobirth_datefirst_namelast_namegenderhire_date
100011953-09-02GeorgiFacelloM1986-06-26
100021964-06-02BezaleSimmelF1985-11-21
100031959-12-03BezalelMaryM1986-08-28
100041954-05-01ChristianKoblickM1986-12-01
100051954-05-01MarySluisF1986-12-01
需求:查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列
select * from employees where mod(emp_no,2)=1 and last_name <>'Mary' order by hire_date desc

结果:

emp_nobirth_datefirst_namelast_namegenderhire_date
100051953-11-07MarySluisF1990-01-22
100011953-09-02GeorgiFacelloM1986-06-26
知识点:1.MOD(emp_no, 2)=1也可以改成emp_no % 2=1,但是某些sql版本可能不支持前者2.不相等有三种表示方式:<>、!=、IS NOT

案例9:

有一个员工职称表titles,如下:
emp_nobirth_datefirst_namelast_name
10001Senior Engineer1986-06-269999-01-01
10003Senior Engineer1986-06-269999-01-01
10004Senior Engineer1986-06-269999-01-01
10006Senior Engineer1986-06-269999-01-01
10007Senior Staff1986-06-269999-01-01
有一个薪水表salaries如下:
emp_nosalaryfrom_dateto_date
10001889582002-06-229999-01-01
10003433112001-08-029999-01-01
10004740572001-12-019999-01-01
10006433112001-12-019999-01-01
10007880702001-12-019999-01-01

需求:统计出各个title类型对应的员工薪水对应的平均工资avg。结果给出title以及平均工资avg,并且以avg升序排序

select t.title,avg(s.salary ) from titles t join salaries s on t.emp_no=s.emp_no group by t.title order by avg(s.salary ) asc

结果:

titleavg(s.salary)
Senior Engineer62409.2500
Senior Staff88070.0000

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

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

相关文章

微信小程序-点击事件、text标签赋值

点击事件 设置&#xff08;bindtap&#xff09;和监听 <button class"key" bindtap"keyClick" data-value"1">1</button>Page({keyClick: function (e) {const value e.currentTarget.dataset.value;}, })text标签赋值 在微信小…

Linux下调试代码——gdb的使用

1. 文件准备&#xff1a; 测试代码&#xff1a; Makefile文件&#xff1a; 执行结果&#xff1a; 此时&#xff0c;我们的结果是存在问题的&#xff0c;即最终结果少了100。现在我们用gdb来调试它。 我们发现我们还没有安装gdb&#xff0c;这里安装一下。 2. 环境准备&#…

Django测试平台搭建学习笔记1

一安装 pip离线安装requests2.32.0所需要的依赖&#xff1a; : charset-normalizer<4,>2 (3.0.0b1) : idna<4,>2.5 (3.7) : urllib3<3,>1.21.1 (2.2.0) : certifi>2017.4.17 (2024.6.2) pip离线安装pytest8.2.0所需要的依赖&#xff1a; : iniconfig (2…

棱镜七彩荣获CNNVD两项大奖,专业能力与贡献再获认可!

6月18日&#xff0c;国家信息安全漏洞库&#xff08;CNNVD&#xff09;2023年度工作总结暨优秀表彰大会在中国信息安全测评中心成功举办。棱镜七彩凭借在漏洞方面的突出贡献和出色表现&#xff0c;被授予“2023年度优秀技术支撑单位”与“2023年度最佳新秀奖”。 优秀技术支撑单…

人工智能无法修复自动化已经破坏的东西

人工智能无法修复自动化已经破坏的东西 没错&#xff0c;如今不断涌现出“我们日益恶化的反乌托邦的快照”之类的故事&#xff0c;但这篇来自行业杂志《美国银行家》(American Banker)的文章却脱颖而出。这篇文章揭示了企业人工智能的一个新的前沿用例:在呼叫中心的工作人员被…

2024请收好这一份全面--详细的AI产品经理从业指南

前言 入行人工智能领域这段时间以来&#xff0c;从零到一把AI推荐系统产品化搭建了起来&#xff0c;也与很多同行AI产品经理小伙伴建立了联系。AI产品经理工作内容各异&#xff0c;不同AI产品化生命周期中更是大为不同&#xff0c;但对想入行AI产品经理的小伙伴来讲&#xff0…

【音乐制作节拍手册#1】鼓组篇持续更新中

开题报告 采用下面类似的话术,让AI替我们找寻一些常用的鼓组编排模式 类似代码的形式,介绍嘻哈音乐风格中不同的鼓组编排,查询下最流行的编排案例鼓组包含哪些 在 Justin Bieber 风格的鼓组中,除了基本的底鼓、军鼓、拍手、高帽和过渡鼓外,还可以使用以下额外的打击乐器…

SpringBoot 统计接口调用耗时的多种方式

在实际开发中&#xff0c;了解项目中接口的响应时间是必不可少的事情。SpringBoot 项目支持监听接口的功能也不止一个&#xff0c;接下来我们分别以 AOP、ApplicationListener、Tomcat 三个方面去实现三种不同的监听接口响应时间的操作。 AOP 首先我们在项目中创建一个类 &am…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch4 值迭代 与 策略迭代 【动态规划 算法】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、过 电子书 补充 【下载&#xff1a; 本章 PDF 电子书 GitHub】 [又看了一遍视频。原来第一次跳过了好多内容。。。] 3、总体 MOOC 过一遍 习题 学堂在线 课程页面链接 中国大学MOOC 课程页面链…

科技创新对农业发展的影响

科技创新对农业发展的影响深远且广泛&#xff0c;主要体现在以下几个方面&#xff1a; 一、提高农业生产效率 引入先进的农业机械设备&#xff1a;新型农业机械设备如无人机、机器人等的应用&#xff0c;显著减轻了农民的劳动强度&#xff0c;提高了农作物的种植效率。利用精…

上市公司-社会责任报告、ESG报告文本(2006-2023年)

上市公司社会责任报告是企业对外公布的一份关于其社会责任实践和成果的详细文件&#xff0c;涵盖环境保护、社会贡献和公司治理等方面的表现。通常包含公司在减少环境影响、提升社会福祉、维护员工权益、促进社区发展以及确保透明和道德的管理实践等方面的信息和数据。有助于了…

浅谈Java23种设计模式之11种行为型模式的使用场景(第二部分)

前言: 行为型设计模式实际使用场景第二部分; 1.中介者模式&#xff08;Mediator&#xff09; 概念: 它定义了一个中介类来封装一系列对象之间的交互&#xff0c;从而使各个对象不需要显式地相互引用&#xff0c;降低耦合度&#xff0c;提高系统的可维护性和扩展性。中介者模…

滑动窗口练习1-长度最小的子数组

1.题目链接&#xff1a;209.长度最小的子数组 2.题目描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条…

聊聊分布式集群的基本概念

在当前主流的分布式架构中,各种各样的集群技术几乎成了任何想要提升系统稳定性和处理能力的团队的必备技能。虽然各种中间件和系统都有让人看似眼花缭乱的集群实现方案,但其背后仍然逃不过一些核心的技术概念,我会结合几个我比较熟悉的中间件,简单聊一下我对集群的理解: …

zlib安装教程(Windows)

开源项目地址&#xff1a;madler/zlib: A massively spiffy yet delicately unobtrusive compression library. (github.com) 下载代码 可以选择git clone 或直接下载release包 Releases madler/zlib (github.com) git clone https://github.com/madler/zlib.git release…

【Android面试八股文】Kotlin内置标准函数with的原理是什么?

文章目录 原理和实现方式应用场景总结 with 是 Kotlin 标准库中的一个内置函数&#xff0c;其主要目的是简化对某个对象实例执行多个操作的代码。它的原理和实现方式如下&#xff1a; 原理和实现方式 with的源码定义如下&#xff1a; /*** Calls the specified function [blo…

被拷打已老实!面试官问我 #{} 和 ${} 的区别是什么?

引言&#xff1a;在使用 MyBatis 进行数据库操作时&#xff0c;#{} 和 ${} 的区别是面试中常见的问题&#xff0c;对理解如何在 MyBatis 中安全有效地处理 SQL 语句至关重要。正确使用这两种占位符不仅影响应用的安全性&#xff0c;还涉及到性能优化。 题目 被拷打已老实&…

GRU基础知识以及相关名词解释

当然&#xff0c;GRU&#xff08;Gated Recurrent Unit&#xff0c;门控循环单元&#xff09;是一种改进的循环神经网络&#xff08;RNN&#xff09;结构&#xff0c;它引入了门控机制来更好地控制信息的流动&#xff0c;从而解决了传统RNN在处理长序列数据时存在的梯度消失和梯…

2024-06-19,面试官问的问题

文章目录 1、采用minIO完成了图片存储&#xff0c;采用阿里云OSS服务器存储图片这两个功能面试官理解为重复&#xff0c;面试官又问minIO怎么同步到OSS&#xff1f;2、讲一下ThreadLocal&#xff1f;3、为什么用ThreadLocal存数据&#xff1f;4、redis有几种数据结构&#xff1…

零成本!无需服务器,搭建你的图床!

先给大家看看成品&#xff1a; 访问地址&#xff1a;http://cp64mba5g6h48vl4is50.app.memfiredb.cn/ 这是我花十分钟做出来的零成本&#xff0c;不需要服务器的图床&#xff0c;不需要登录&#xff0c;任何人都可以在上面上传图片和拿到图片链接去使用&#xff0c;当然这只…