广告
返回顶部
首页 > 资讯 > 数据库 >mysql笔试题18道
  • 823
分享到

mysql笔试题18道

mysql数据库java 2023-09-02 19:09:13 823人浏览 安东尼
摘要

部门表、员工表、薪水等级表 1.取得每个部门最高薪水人员名称 第一步:取得每个部门最高薪水作为临时表t  select deptno,max(sal) as maxSal from emp group by deptno 第

部门表、员工表、薪水等级表

1.取得每个部门最高薪水人员名称

第一步:取得每个部门最高薪水作为临时表t 

select deptno,max(sal) as maxSal from emp group by deptno 

第二步:临时表t与emp表连接条件 e.deptno=t.deptno and e.sal=t.maxSal 

select e.ename,t.* from emp e join (select deptno,max(sal) as maxSal from emp group by deptno order by deptno) t on e.deptno=t.deptno and e.sal=t.maxSal

2.哪些人的薪水在部门的平均薪水之上

第一步:取得每个部门平均薪水作为临时表t 

SELECT DEPTNO, AVG(SAL) FROM emp GROUP BY DEPTNO;

第二步:临时表t与emp表连接条件 e.deptno=t.deptno and e.sal>t.avgSal 

SELECT t.*,e.ENAME,e.SAL FROM emp e JOIN (SELECT DEPTNO, AVG(SAL) AS avgSal FROM emp GROUP BY DEPTNO) t ON e.DEPTNO=t.DEPTNO AND e.SAL>t.avgSal ORDER BY DEPTNO;

 

 3.取得部门中(所有人)平均的薪水等级

平均的薪水等级:先求出每个薪水对应的等级,然后找出薪水等级的平均值

平均薪水的等级:先求出每个部门的平均薪水,再根据平均薪水划分等级

SELECT e.ENAME,e.DEPTNO,e.SAL,s.GRADE FROM emp e JOIN salgrade s ON e.SAL BETWEEN s.LOSAL AND s.HISAL ORDER BY DEPTNO;
SELECT e.DEPTNO,AVG(s.GRADE) FROM emp e JOIN salgrade s ON e.SAL BETWEEN s.LOSAL AND s.HISAL GROUP BY e.DEPTNO;

 

4. 不准用Max函数取得最高薪水(两种做法)

第一种方案:

SELECT ENAME,SAL FROM emp ORDER BY SAL DESC LIMIT 0,1;

第二种方案:表的自连接 

SELECT SAL FROM emp WHERE SAL NOT IN(SELECT DISTINCT a.SAL FROM emp a JOIN emp b ON a.SAL

5.取得平均薪水最高的部门的部门编号(两种做法)

第一种方案:降序取第一个

第一步:找出每个部门的平均薪水

SELECT DEPTNO,AVG(SAL) AS avgSAL FROM emp GROUP BY DEPTNO;

第二步:降序找出第一个

SELECT DEPTNO FROM emp GROUP BY DEPTNO ORDER BY AVG(SAL) DESC LIMIT 1;

 

第二种方案: max函数

第一步同上

第二步:max函数找到最高平均薪水

SELECT MAX(t.avgSAL) FROM (SELECT AVG(SAL) AS avgSAL FROM emp GROUP BY DEPTNO) t

第三步:查询完部门编号和平均薪水然后根据条件等于最大平均薪水显示

SELECT DEPTNO,AVG(SAL) AS avgsal FROM emp GROUP BY DEPTNO HAVING avgsal=(SELECT MAX(t.avgSAL) FROM (SELECT AVG(SAL) AS avgSAL FROM emp GROUP BY DEPTNO) t);

 

 取得平均薪水最高的部门的部门名称

第一步: 找出平均薪水最高的部门

SELECT DEPTNO,AVG(SAL) AS avgsal FROM emp GROUP BY DEPTNO ORDER BY avgsal DESC LIMIT 1;

第二步:与部门表连接条件部门编号

SELECT d.DNAME,AVG(e.SAL) AS avgsal FROM emp e JOIN dept d ON e.DEPTNO=d.DEPTNO GROUP BY d.DNAME ORDER BY avgsal DESC LIMIT 1;

7.求平均薪水的等级最低的部门的部门名称(注意这里不能使用limit,存在局限性如果等级最低出现多个部门)

第一步:求各个部门平均薪水

SELECT e.DEPTNO,AVG(e.SAL) AS avgsal FROM emp e GROUP BY DEPTNO ORDER BY avgsal ASC;

第二步:结果与部门表连接条件,查询等级结果

SELECT t.*,s.GRADE FROM (SELECT d.DNAME,AVG(e.SAL) AS avgsal FROM emp e JOIN dept d ON e.DEPTNO=d.DEPTNO GROUP BY d.DNAME ORDER BY avgsal ASC) tJOIN salgrade s ON t.avgsal BETWEEN s.LOSAL AND s.HISAL;

 

第三步:查询平均薪水最低对应的等级

SELECT GRADE FROM salgrade WHERE (SELECT AVG(e.SAL) AS avgsal FROM emp e GROUP BY DEPTNO ORDER BY avgsal ASC LIMIT 1) BETWEEN LOSAL AND HISAL; //3

第四步:第二步与第三步连接条件显示结果

SELECT t.*,s.GRADE FROM (SELECT d.DNAME,AVG(e.SAL) AS avgsal FROM emp e JOIN dept d ON e.DEPTNO=d.DEPTNO GROUP BY d.DNAME ORDER BY avgsal ASC) tJOIN salgrade s ON t.avgsal BETWEEN s.LOSAL AND s.HISAL WHERE s.GRADE=(SELECT GRADE FROM salgrade WHERE (SELECT AVG(e.SAL) AS avgsal FROM emp e GROUP BY DEPTNO ORDER BY avgsal ASC LIMIT 1) BETWEEN LOSAL AND HISAL);

8.取得比普通员工(员工代码没有在mgr字段上出现)的最高薪水还要高的领导人姓名 

第一步:找出普通员工的最高薪水

SELECT MAX(SAL) FROM emp WHERE EMPNO NOT IN (SELECT DISTINCT MGR FROM emp WHERE MGR IS NOT NULL);

 

第二步:查询工资比最高薪水高的领导人姓名

SELECT ENAME,SAL FROM emp WHERE SAL>(SELECT MAX(SAL) FROM emp WHERE EMPNO NOT IN (SELECT DISTINCT MGR FROM emp WHERE MGR IS NOT NULL));

 

9.取出薪水最高的前5名员工(这里不需要考虑第6名与第5名工资一样的情况)

SELECT ENAME,SAL FROM emp ORDER BY SAL DESC LIMIT 5;

 

10.取出薪水最高的第六到第十名的员工 

SELECT ENAME,SAL FROM emp ORDER BY SAL DESC LIMIT 5,5;

 

11.取得最后入职的5名员工 

SELECT ENAME,HIREDATE FROM emp ORDER BY HIREDATE DESC LIMIT 5;

 

12.取得每个薪水等级有多少员工 

第一步:取出每个员工薪水对应的等级

SELECT e.ENAME,e.SAL,s.GRADE FROM emp e JOIN salgrade s ON e.SAL BETWEEN s.LOSAL AND s.HISAL;

 

第二步:根据其等级进行分组并计数

SELECT s.GRADE,COUNT(*) FROM emp e JOIN salgrade s ON e.SAL BETWEEN s.LOSAL AND s.HISAL GROUP BY s.GRADE;

 

 13.列出所有员工及其领导的名字

SELECT a.ENAME '员工',b.ENAME '领导' FROM emp a LEFT JOIN emp b ON a.MGR=b.EMPNO;

 

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

SELECT a.EMPNO '员工号',a.ENAME '员工',a.HIREDATE,b.ENAME '领导',b.HIREDATE,d.DNAME '部门名称' FROM emp a JOIN emp b ON a.MGR=b.EMPNO JOIN dept d ON a.DEPTNO=d.DEPTNO WHERE a.HIREDATE

15.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门(右外连接)

SELECT e.*,d.DNAME FROM emp e RIGHT JOIN dept d ON e.DEPTNO=d.DEPTNO;

 

16.列出至少有5个员工的所有部门

SELECT e.DEPTNO,d.DNAME FROM emp e JOIN dept d ON e.DEPTNO=d.DEPTNO GROUP BY DEPTNO HAVING COUNT(*)>=5;

 

17.列出薪资比“Smith”高的所有员工信息

SELECT ENAME,SAL FROM emp WHERE SAL >(SELECT SAL FROM emp WHERE ENAME='SMITH');

 

18.列出所有(“CLERK”)办事员的姓名及其部门名称,部门的人数 

第一步:列出所有(“CLERK”)办事员的姓名及其部门名称 临时表t1

SELECT e.ENAME,e.JOB,d.DNAME,d.DEPTNO FROM emp e JOIN dept d ON e.DEPTNO=d.DEPTNO WHERE e.JOB='CLERK';

 

第二步:列出部门的人数 临时表t2

SELECT DEPTNO,COUNT(*) FROM emp GROUP BY DEPTNO;

 

第三步:两张临时表连接

SELECT t1.*,t2.deptCount FROM (SELECT e.ENAME,e.JOB,d.DNAME,d.DEPTNO FROM emp e JOIN dept d ON e.DEPTNO=d.DEPTNO WHERE e.JOB='CLERK') t1 JOIN (SELECT DEPTNO,COUNT(*) AS deptCount FROM emp GROUP BY DEPTNO) t2 ON t1.DEPTNO=t2.DEPTNO;

 

 

 

 

 

 

 

 

 

 

来源地址:https://blog.csdn.net/bubbleJessica/article/details/129432250

您可能感兴趣的文档:

--结束END--

本文标题: mysql笔试题18道

本文链接: https://www.lsjlt.com/news/391249.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql笔试题18道
    部门表、员工表、薪水等级表 1.取得每个部门最高薪水人员名称 第一步:取得每个部门最高薪水作为临时表t  select deptno,max(sal) as maxSal from emp group by deptno 第...
    99+
    2023-09-02
    mysql 数据库 java
  • MySQL 精选 60 道笔试题
    基础 关系型和非关系型数据库的区别? 关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据。 可以保持数据的一致性。 数据更新的开销比较小。 支持复杂查询(带 where 子句的查询...
    99+
    2023-09-01
    mysql 数据库
  • mysql常见笔试题
    一、Mysql常见笔试题 1、Mysql 中有哪几种锁? (1)表级锁:开销小,加锁快。不会出现死锁,锁定粒度大,发生锁冲突的概率高,并发度低。 (2)行级锁:开销大,加锁慢。会出现死锁,锁定粒度小,发生锁冲突的概率低,并发度高。...
    99+
    2014-11-09
    mysql常见笔试题
  • MySQL面试笔试题集-BAT
    01、MySQL技术特点 02、MySQL默认端口号         3306 03、MySQL优势 04、MySQL支持的储存引擎以及特点         MySQL5.7支持:InnoDB、MyISAM、MERGE、MEMOR...
    99+
    2018-09-18
    MySQL面试笔试题集-BAT
  • MySQL学习笔记(18):SQL优化
    本文更新于2019-08-18,使用MySQL 5.7,操作系统为Deepin 15.4。 目录优化SQL语句的步骤通过SHOW STATUS了解SQL语句的执行情况定位执行效率低下的SQL语句通过EXPLAIN或DESC分析SQ...
    99+
    2016-01-24
    MySQL学习笔记(18):SQL优化
  • 9道常见的java笔试选择题
    1.关于Java编译,下面哪一个正确()(选择一项)A.Java程序经编译后产生machine codeB.Java程序经编译后会生产byte codeC.Java程序经编译后会产生DLLD.以上都不正确答案:B分析: Java是解释型语言...
    99+
    2021-06-27
    java面试题 java
  • Mysql经典面试题20道
    我整理的必刷SQL经典题目 SQL语句在工作与面试时都必不可少,下面我整理了20道题目供大家练习,常见的使用方法和开窗函数都有考察,来测测你的sql技能是否过关。 一、创建表 共有4个表,分别是学生信息表、课程表、老师信息表和成绩表。 1 ...
    99+
    2023-08-22
    mysql 面试 数据库
  • 最常见的MySQL面试及笔试题
    不知道大家之前对类似最常见的MySQL面试及笔试题的文章有无了解。今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完最常见的MySQL面试及笔试题你一定会有所收获的。01、MySQL...
    99+
    2022-10-18
  • java经典笔试题大全(50道含答案)
    java经典笔试题大全(50道含答案) 整理了一套常用的Java笔试题,选择题50道,简答题5道,试试你能做对多少题吧,含答案。 选择题(共50题,每题1.5分,共75分。多选题选不全或选错都不得分。) 以下属于面向对象的特征的是...
    99+
    2023-08-17
    java jvm 开发语言
  • 数据库笔试面试题库(Oracle、MySQL等)
    数据库笔试面试题库(Oracle、MySQL等)版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作。 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料。 ※※※※※...
    99+
    2022-10-18
  • Linux运维MySQL必会面试题100道
    1.开启MySQL服务 2.检测端口是否运行 3.为MySQL设置密码或者修改密码。 4.登陆MySQL数据库。 5.查看当前数据库的字符集 6.查看当前数据库版本 7.查看当前登录的用户。 8.创建GBK...
    99+
    2022-10-18
  • MySQL精选60道面试题 ( 含答案 )
    2023的4月招聘季如此卷,没点真本事真技术,没点面试经验,不了解点职场套路,如何过五关斩六将? 找工作最重要的一步自然是面试,马上跳槽季,网上出现了各种面试题,一时会让人眼花缭乱,分不清最该看哪个。...
    99+
    2023-08-31
    面试 数据库 自动化测试 职场和发展 软件测试
  • java笔试题及答案(基础难度笔试题)
    1.有一段java应用程序,它的主类名是al,那么保存它的源文件可以是?()A al.java (推荐学习:java程序员面试题)B.al.classC.alD.都对答案:A分析:.class是...
    99+
    2018-08-27
    java面试题 java
  • 【嵌入式笔试】嵌入式笔试题
    📜作者:不想脱发的基兄 📺专栏:《嵌入式面试》 📣格言:这个世界上肯定有另一个我,做着我不敢做的事,过着我想过的生活。 前言 2022年秋招我面试嵌入...
    99+
    2023-10-12
    面试 c语言 嵌入式硬件
  • ios 笔试题3
    1.main()  {     int a[5]={1,2,3,4,5};     int *ptr=(int *)(&a+1);      printf("%d,%d",*(a+1),*(ptr-1)); } 答:2,5     ...
    99+
    2023-01-31
    笔试 ios
  • 程序员面试备战篇:18个经典MySQL面试专题解析,干货分享
    1.数据库三范式是什么 第一范式(1NF):字段具有原子性,不可再分。(所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性的,不可再分) 第二范式(2NF)是在第一范式(1NF)的基础上建立...
    99+
    2022-10-18
  • C语言八道笔试题精讲带你掌握指针
    目录题目一题目二题目三题目四题目五题目六题目七题目八为了题目的准确性和我们一般学习过程中的习惯,这里所有的题目代码都是在 X86 环境(32 位平台)下运行的。 题目一 #inclu...
    99+
    2022-11-13
  • 总结三道MySQL联合索引面试题
    目录前言: 众所周知mysql联合索引遵循最左前缀匹配原则,在少数情况下也会不遵循(有兴趣,可以翻一下上篇文章) 创建联合索引的时候,建议优先把区分度高的字段放在第一列。 至于怎么统计区分度,可以按照下面这种方式。 创建...
    99+
    2022-08-16
    MySQL联合索引面试题 MySQL联合索引
  • Java面试笔试题大全
    JAVA相关基础知识1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是...
    99+
    2023-06-03
  • Linux面试题(34道)
    1、Linux中各个目录的作用 1)/ 根目录 2)/boot 引导程序,内核等存放的目录 3)/sbin 超级用户可以使用的命令的存放目录 4)/bin 普通用户可以使用的命令的存放目录 5)/li...
    99+
    2023-09-05
    linux 运维 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作