当前位置: 首页 > news >正文

MySql基础34题写题记录(11-20)

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

select ename from emp order by hiredate desc limit 5;

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

    先取每个员工的薪水等级

Select e.ename,s.grade grade

From emp e

Join salgrade s

On e.sal between s.losal and s.hisal

    接着直接分组求

Select a.grade,count(*)From (Select e.ename,s.grade gradeFrom emp eJoin salgrade sOn e.sal between s.losal and s.hisal) aGroup by grade;

13、面试题

(1)找出没选过“黎明”老师的所有学生姓名

Select distinct s.sname

From sc

Join s

On sc.sno = s.sno

Join c

On sc.cno = c.cno

Where c.cteacher != ‘黎明’;

Select s.sname,c.cname,c.cno

From sc

Join s

On sc.sno = s.sno

Join c

On sc.cno = c.cno

Where c.cteacher != ‘黎明’;

       第一个问题是用的cmd窗口输入,因此编码有问题,无法得知是代码的问题还是编码的问题,因此把老师名字改成课号

       第二个问题是和之前一样的,因为笛卡尔积,把所有的都求出来了,一个人选了很多门课,题目的要求是,只要存在,即删去这个人名,但是程序的只要这一行数据没有,就保留,最后就会把不该保留的保留

       尝试按照名字分组,使用having对分组数据进行再次过滤

Select s.sname,c.cname,c.cno

From sc

Join s

On sc.sno = s.sno

Join c

On sc.cno = c.cno

Where s

    还是失败了,采用先把选5号课的学生找出来,再用not in求

    选5号课的学生(要找老师也是同理)

Select s.sname

From s

Join sc

on s.sno = sc.sno

Where sc.cno = 5;

    接着排除

Select s.snameFrom sWhere s.sname not in (Select s.snameFrom sJoin scon s.sno = sc.snoWhere sc.cno = 5);

(2)先找到学生未及格门数的表

       Selects.sname,avg(sc.scgrade)FromSRight Join //这里右联,应该是为了完整性,但是看起来好像不用ScOns.sno = sc.snowheresc.scgrade < 60Group bySnoHaving

           Cout(grade) >= 2;//改成Cout(s.sname) >= 2,因为在成绩表中,一个学号对应多个课号,对应有多个成绩,因此前面where查到的不及格的课程,有几个就有几个名字,所以就统计有多少个名字就知道有多少科没过

(3)即学过 1 号课程又学过 2 号课所有学生的姓名。

    找出学过一号课程的学生学号,再找到学过二号课程的学生学号,然后找重合的,最后联合s表,查到学生名字

Select s.snameFrom (select sc.sno,sc.cno from sc where sc.cno = 1 ) aJoin (select sc.sno,sc.cno from sc where sc.cno = 2 ) bOn b.sno = a.snoJoin sOn a.sno = s.sno;

14、列出所有员工及领导的姓名

Select a.ename,b.ename mgrFrom emp aLeft Join emp bOn a.mgr = b.empno;

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

    这里的问题是,入职越早,时间就越小,所以入职早的反而小于入职晚的

先得到员工编号,姓名,部门编号,上级编号表,并求得受雇日期较早的员工

Select a.ename,a.empno,a.deptno,b.empno mgr

From emp a

Left Join emp b

On a.mgr = b.empno

Where a.hiredate < b.hiredate;

    内连,得到部门名称

Select d.dname,c.empno,c.enameFrom (Select a.ename,a.empno,a.deptno,b.empno mgrFrom emp aLeft Join emp bOn a.mgr = b.empnoWhere a.hiredate < b.hiredate) cJoin dept dOn d.deptno = c.deptno;

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

Select e.*,d.dnameFrom emp eRight Join dept dOn e.deptno = d.deptno;

17、列出至少有5个员工的所有部门

    先找到有5个及以上员工的部门编号

Select deptno,count(*) sum

From emp

Group by deptno

Having count(*) >= 5;

    再多表查询,找到部门名字

Select d.dname,a.sumFrom dept dJoin (Select deptno,count(*) sumFrom empGroup by deptnoHaving count(*) >= 5) aOn d.deptno = a.deptno;

18、列出薪金比"SMITH"多的所有员工信息.

Select *From empWhere sal > (select sal from emp where ename = ‘smith’);

19、列出所有"CLERK"(办事员)的姓名及其部门名称,部门的人数

    这里总是报错,最后发现是要把where语句放到join on 语句后面,要不然执行顺序不对

    找到办事员的姓名,部门名称,再和部门人数表联合,得到部门人数

Select e.ename,d.dnameFrom emp eJoin dept dOn e.deptno = d.deptnoJoin (Select deptno,count(*) sumFrom empGroup by deptno) aOn e.deptno = a.deptnoWhere e.job = ‘clerk’

20、列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数

    先找个每个工作的最低薪资和雇员人数

Select min(sal) min_sal,job,count(ename)

From emp

Group by job

    再找到大于1500的

Select *From (Select min(sal) min_sal,job,count(ename)From empGroup by job) aWhere a.min_sal >1500;

相关文章:

MySql基础34题写题记录(11-20)

11、取得最后入职的5名员工 select ename from emp order by hiredate desc limit 5; 12、取得每个薪水等级有多少员工 先取每个员工的薪水等级 Select e.ename,s.grade grade From emp e Join salgrade s On e.sal between s.losal and s.hisal 接着直接分组求 Select …...

设计模式——单例模式(1)

一、写在前面 设计模式有23种&#xff0c;每一篇是一种模式&#xff0c;从简单到难&#xff0c;第一篇从最简单的单例模式试试水创建型模式 单例模式工厂方法模式抽象工厂模式原型模式建造者模式 结构型模式行为型模式 二、介绍 单例模式是指一个类只能创建出一个对象&#…...

剧本杀小程序:提升玩家游戏体验,带动经济效益

剧本杀作为一个新兴游戏方式&#xff0c;能够满足年轻人的社交需求&#xff0c;让大众体验到不太一样的人生&#xff0c;在角色中进行演绎。这种独特的游戏模式吸引了众多的年轻玩家&#xff0c;由此&#xff0c;剧本杀行业进入了爆发期。 如今&#xff0c;在科技的不断创新下…...

Linux系统通过编辑crontab来设置定时任务---定时关机

在Linux系统中&#xff0c;crontab 是用来设置周期性被执行的指令的守护进程。通过编辑 crontab&#xff0c;您可以安排定时任务&#xff0c;比如定时关机、定时备份文件、定时运行脚本等。以下是如何编辑 crontab 来设置定时任务的步骤&#xff1a; 打开终端&#xff1a;您可以…...

Mac电脑word文档误删,4个方法快速恢复

对于使用Mac的用户来说&#xff0c;丢失重要的Word文档可能会为学习或工作带来严重的影响。不过&#xff0c;幸运的是&#xff0c;关于mac word 文档恢复方法还是有很多的&#xff0c;通常帮助Mac用户轻松找回丢失的word文档。接下来&#xff0c;小编将介绍一些在Mac上恢复丢失…...

threejs-基础材质设置

一、介绍 主要内容&#xff1a;基础材质(贴图、高光、透明、环境、光照、环境遮蔽贴图) 主要属性&#xff1a; side: three.DoubleSide, //设置双面 color: 0xffffff, //颜色 map: texture, //纹理 transparent: true, // 透明度 aoMap: aoTexture, //ao贴图 aoMapIntensity: 1…...

【大模型开发】AI提示词框架:解锁ICIO、CRISPE、BROKE和RASCEF的强大潜力

作为一名经验丰富的程序员,您是否曾感到在与AI助手交互时难以获得理想的输出?本文将为从事AI开发或经常使用AI工具的技术人员介绍四个强大的AI提示词框架:ICIO、CRISPE、BROKE和RASCEF。这些框架能帮助您更有效地与AI模型沟通,提高工作效率。 1. ICIO框架:简洁而有力 IC…...

Rust学习如何更有信心?

关于如何学习Rust&#xff0c;在Hacker News上有一篇非常火的教程&#xff0c;作者通过自己的Rust学习经历&#xff0c;向大家指出了一条如何学习Rust的路径。 学习一门编程语言必不可少的是阅读技术书籍和编写代码&#xff0c;要想掌握Rust&#xff0c;两者的交替学习至关重要…...

3个简单易懂的方法,教你马上掌握excel表格数据打印技巧

在EXCEL表格里制作表格后&#xff0c;表格的数据有可能不正好是一页&#xff0c;如果就这样打印出来&#xff0c;数据有可能不完整&#xff0c;表格也不美观&#xff0c;还浪费纸张&#xff0c;那么如何将表格打印在一张纸上呢&#xff1f;下面小编为你介绍几种方法和解决方案&…...

dbt 增量策略模型实战教程

上文我们介绍了增量策略的理论知识&#xff0c;本文结合实际场景介绍如何合理利用增量策略&#xff0c;内容包括应用场景、常见问题及解决方案。 应用场景 增量模型是定义如何增量向数据模型添加数据的有效方法——假设我们有描述信用卡交易的数据表——我们创建DBT模型&#…...

【含文档】基于Springboot+Android的校园论坛系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…...

Go版数据结构 -【8.4 快速排序】

8.4 快速排序 快速排序是一种分而治之的排序算法。它通过随机选择一个基准元素&#xff0c;将数组分为两部分。 一部分比基准元素小&#xff0c;另一部分比基准元素大&#xff0c;之后对两部分排序。 快速排序以其平均情况下的 O(n log n) 时间复杂度和良好的性能而广泛应用…...

达梦DBLINK访问ORACLE配置方法

目录 1、概述 2、测试环境 3、语法简介 4、配置访问DM的DBLINK 5、配置访问ORACLE的DBLINK 5.1 通过OCI配置 5.2 通过ODBC配置 1、概述 本文介绍了达梦DBLINK的配置方法。有3部分内容&#xff0c;1&#xff09;达梦访问到达梦的配置方法&#xff1b;2&#xff09;通过OC…...

基础知识1

目录 1、gcd最大公因数 2、最小公倍数 3、素数问题 ①简单数学求法 ②素数筛 ③线性筛 1、gcd最大公因数 int gcd(int a,int b){return b0?a:gcd(b,a%b);} 做题过程中&#xff0c;如果数据太大&#xff0c;需要边做边对分子分母进行约分 2、最小公倍数 int a,b;scanf(&…...

网页前端开发之Javascript入门篇(9/9):对象

Javascript对象 什么是对象? 答&#xff1a;其概念跟 Python教程 的字典基本相似&#xff0c;虽然存有一些差异&#xff0c;不过对于目前的教程来讲可以忽略。 下面是对象的语法&#xff1a; var aaa {"弓" : "张","木" : "李",&…...

Oracle RAC IPC Send timeout detected问题分析处理

一、报错信息 今天在进行数据库巡检时&#xff0c;在集群节点1发现了IPC相关报错信息&#xff1a; 2024-10-10T10:22:06.84631708:00 IPC Receiver dump detected. Sender instance 2 Receiver pnum 277 ospid 377527 [oraclezxsszpt-sjkfwq1 (PPA6)], pser 124403 2024-10-1…...

QT 实现QMessageBox::about()信息自定义显示

这是我记录Qt学习过程的第四篇心得文章&#xff0c;主要是方便自己编写的应用程序显示“关于信息”&#xff0c;对QMessageBox::about()输入信息进行规范&#xff0c;可以设置应用程序名称&#xff0c;通过定义宏从pro文件获取应用程序版本号&#xff0c;以及编译程序的QT版本、…...

(C++进阶)C++20

目录 一、概述 二、新特性 1. 模块&#xff08;Modules&#xff09;功能 2. 概念&#xff08;Concepts&#xff09;功能 3. 范围&#xff08;Ranges&#xff09;功能 4. 协程&#xff08;Coroutines&#xff09;功能 5. 三路比较运算符&#xff08;Spaceship Operator&a…...

【常用的安装破解版指令】MAC安装破解版软件显示文件损坏时

MAC安装破解版软件显示文件损坏时 复制以下命令粘贴到终端后 sudo xattr -rd com.apple.quarantine 打开Finder&#xff08;访达&#xff09;&#xff0c;点击左侧的 应用程序&#xff0c;将应用拖进终端中&#xff0c;然后按键盘的回车键&#xff08;return&#xff09;&…...

【QT Quick】定时器和线程:定时器Timer

在现代用户界面开发中&#xff0c;动态更新内容、处理定时任务或异步任务是常见的需求&#xff0c;尤其在复杂应用中可能会遇到界面阻塞的问题。在 Qt Quick 中&#xff0c;定时器&#xff08;Timer&#xff09;和多线程是两种主要的解决方案&#xff0c;用于避免这种阻塞现象。…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...