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种,每一篇是一种模式,从简单到难,第一篇从最简单的单例模式试试水创建型模式 单例模式工厂方法模式抽象工厂模式原型模式建造者模式 结构型模式行为型模式 二、介绍 单例模式是指一个类只能创建出一个对象&#…...

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

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

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

threejs-基础材质设置
一、介绍 主要内容:基础材质(贴图、高光、透明、环境、光照、环境遮蔽贴图) 主要属性: 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,在Hacker News上有一篇非常火的教程,作者通过自己的Rust学习经历,向大家指出了一条如何学习Rust的路径。 学习一门编程语言必不可少的是阅读技术书籍和编写代码,要想掌握Rust,两者的交替学习至关重要…...

3个简单易懂的方法,教你马上掌握excel表格数据打印技巧
在EXCEL表格里制作表格后,表格的数据有可能不正好是一页,如果就这样打印出来,数据有可能不完整,表格也不美观,还浪费纸张,那么如何将表格打印在一张纸上呢?下面小编为你介绍几种方法和解决方案&…...
dbt 增量策略模型实战教程
上文我们介绍了增量策略的理论知识,本文结合实际场景介绍如何合理利用增量策略,内容包括应用场景、常见问题及解决方案。 应用场景 增量模型是定义如何增量向数据模型添加数据的有效方法——假设我们有描述信用卡交易的数据表——我们创建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 快速排序 快速排序是一种分而治之的排序算法。它通过随机选择一个基准元素,将数组分为两部分。 一部分比基准元素小,另一部分比基准元素大,之后对两部分排序。 快速排序以其平均情况下的 O(n log n) 时间复杂度和良好的性能而广泛应用…...

达梦DBLINK访问ORACLE配置方法
目录 1、概述 2、测试环境 3、语法简介 4、配置访问DM的DBLINK 5、配置访问ORACLE的DBLINK 5.1 通过OCI配置 5.2 通过ODBC配置 1、概述 本文介绍了达梦DBLINK的配置方法。有3部分内容,1)达梦访问到达梦的配置方法;2)通过OC…...
基础知识1
目录 1、gcd最大公因数 2、最小公倍数 3、素数问题 ①简单数学求法 ②素数筛 ③线性筛 1、gcd最大公因数 int gcd(int a,int b){return b0?a:gcd(b,a%b);} 做题过程中,如果数据太大,需要边做边对分子分母进行约分 2、最小公倍数 int a,b;scanf(&…...
网页前端开发之Javascript入门篇(9/9):对象
Javascript对象 什么是对象? 答:其概念跟 Python教程 的字典基本相似,虽然存有一些差异,不过对于目前的教程来讲可以忽略。 下面是对象的语法: var aaa {"弓" : "张","木" : "李",&…...

Oracle RAC IPC Send timeout detected问题分析处理
一、报错信息 今天在进行数据库巡检时,在集群节点1发现了IPC相关报错信息: 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学习过程的第四篇心得文章,主要是方便自己编写的应用程序显示“关于信息”,对QMessageBox::about()输入信息进行规范,可以设置应用程序名称,通过定义宏从pro文件获取应用程序版本号,以及编译程序的QT版本、…...
(C++进阶)C++20
目录 一、概述 二、新特性 1. 模块(Modules)功能 2. 概念(Concepts)功能 3. 范围(Ranges)功能 4. 协程(Coroutines)功能 5. 三路比较运算符(Spaceship Operator&a…...
【常用的安装破解版指令】MAC安装破解版软件显示文件损坏时
MAC安装破解版软件显示文件损坏时 复制以下命令粘贴到终端后 sudo xattr -rd com.apple.quarantine 打开Finder(访达),点击左侧的 应用程序,将应用拖进终端中,然后按键盘的回车键(return)&…...
【QT Quick】定时器和线程:定时器Timer
在现代用户界面开发中,动态更新内容、处理定时任务或异步任务是常见的需求,尤其在复杂应用中可能会遇到界面阻塞的问题。在 Qt Quick 中,定时器(Timer)和多线程是两种主要的解决方案,用于避免这种阻塞现象。…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...

WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
大模型真的像人一样“思考”和“理解”吗?
Yann LeCun 新研究的核心探讨:大语言模型(LLM)的“理解”和“思考”方式与人类认知的根本差异。 核心问题:大模型真的像人一样“思考”和“理解”吗? 人类的思考方式: 你的大脑是个超级整理师。面对海量信…...