MySQL刷题笔记 Leetcode&牛客

mysql 专业笔记 -- 第 50 章:使用 mysqldump 进行备份 mysqldump 用于备份 MySQL 数据库,支持指定主机、用户和密码,可备份数据库、表或排除特定表。通过 --routines 保留存储过程,--compress 和 gzip 实现压缩传输,适用于远程备份或直接上传至 S3。恢复时使用 mysql 命令或 source 语句加载 .sql 文件,支持压缩文件直接解压恢复。建议避免命令行明文传密码以保障安全。 阅读详情

MySQL刷题记录

Leetcode

176 第二高的薪水 坑多

题目描述:
在这里插入图片描述
本题坑很多,很多地方需要注意:

1、 [首要问题]如何输出第二高的薪水,语法上怎么解决
2、没有第二高的薪水时不能空着,必须填入NULL
3、注意"第二高"的定义,不论有几行的取值相同,数值第二高就输出(属于DENSE_RANK())
4、 报错"Every derived table must have its own alias
"是说派生出的表必须要有别名(alias),在外层FROM(…)后面加上别名即可,因为内层的表是在外层(用别名)引用,所以别名加在外层查询的FROM后面
5、注意限制返回的行数,因为第二高的值本身只有一个,所以只应返回一行

改良3遍后的代码:

SELECT (
SELECT DISTINCT salary AS SecondHighestSalary
FROM (SELECT id,salary ,(DENSE_RANK() OVER (ORDER BY salary DESC) ) AS ranking
      FROM Employee
      )AS P2
WHERE ranking='2'
)AS SecondHighestSalary;
  • 输出第二高的薪水,我的直观想法是加RANK(),官方解答用LIMIT+OFFSET解决的
  • 之所以多加一层SELECT,是为了把有时输出的空白值切实地规范化成NULL

175. 组合两个表 区分JOIN和WHERE

在这里插入图片描述
在这里插入图片描述
直接用外连接就完事(只对一个表施加限定条件,用外连接,空缺的部分会自动填成NULL)

SELECT firstName,lastName,city,state 
FROM Person AS P1
LEFT JOIN Address AS P2 ON P1.PersonId=P2.PersonId;

这里不可以使用WHERE,否则没有地址信息的人信息会被筛掉,只有内连接时WHERE和ON等价,一般JOIN用ON即可

1693. 每天的领导和合伙人 DISTINCT去重

写一条 SQL 语句,使得对于每一个 date_id 和 make_name,返回不同的 lead_id 以及不同的 partner_id 的数量。 按 任意顺序 返回结果表。
在这里插入图片描述
题目重点:不同的xx ID,所以必须要去重再求和,不能累加重复的数值(没注意到这一点的我一直在改,心很累)

SELECT date_id, make_name,COUNT(DISTINCT lead_id) AS unique_leads, 
		COUNT(DISTINCT partner_id) AS unique_partners   
FROM DailySales
GROUP BY date_id,make_name

1890. 2020年最后一次登录 MAX()用于DATE数据

题目:
在这里插入图片描述
这一题的关键是想到使用MAX()函数,否则很不好解决,必须记住时间信息也可以正常比较大小

代码:

SELECT user_id,MAX(time_stamp) AS last_stamp
FROM Logins
WHERE time_stamp BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59'
GROUP BY user_id  

或者用YEAR()函数,截取对应的年份字段,从而确保这是2020年内的数据

SELECT user_id,MAX(time_stamp) AS last_stamp
FROM Logins
WHERE YEAR(time_stamp)=2020
GROUP BY user_id  
1501. 可以放心投资的国家 综合应用

在这里插入图片描述

对于涉及多个不同结构的表的操作,思路最清晰明确的做法就是类似Pandas数据分析的思路,用WITH viewName AS (<view定义>)建立(多个)辅助表格,然后再用SELECT语句筛选

WITH
# 国家维度的通话时长
call_log AS (
    -- caller所属国家的通话时长
    SELECT a.caller_id AS id, a.duration, LEFT(b.phone_number,3) AS country_code
    FROM calls a 
    LEFT JOIN person b ON a.caller_id=b.id
    UNION ALL 
    -- callee所属国家的通话时长
    SELECT a.callee_id AS id,a.duration, LEFT(b.phone_number,3) AS country_code
    FROM calls a 
    LEFT JOIN person b ON a.callee_id=b.id
),
# 每个国家的平均通话时长
duration_avg_country AS (
SELECT country_code, SUM(duration)/COUNT(id) AS duration_avg
FROM call_log
group by country_code
)
# 选出平均通话时长大于全球平均通话时长的国家
SELECT b.name AS country
FROM duration_avg_country AS a 
LEFT JOIN country AS b ON a.country_code=b.country_code
WHERE a.duration_avg>( SELECT sum(duration)/count(id) AS duration_all # 全球通话时长
                        FROM call_log ) 

这里按先后顺序使用了两个辅助表,一个是id-通话时间-所属国家的call_log, 另一个是在call_log基础上构建的每个国家的平均通话时长duration_avg_country, 在duration_avg_country基础上筛选即可得到答案(平均通话时长多于全球平均时长的国家)

牛客网

leetcode好还是牛客网好-algorithmStudy:算法学习 leetcode好还是牛客网好 算法学习思路与题解记录 这里是在学习算法过程中碰到的实际例题与对应的题解,其中部分在写的过程中都有对应的备注内容。 目前的学习平台主要在一下三个: (更偏向面试) 目前主要是在acwing上进行学习。 本人在19年也去参加过的acm课程,感觉还是挺不错,但是需要有些基础去听才会有更好的效果,在这个项目里也把课件上传了,仅供学习使用。 如何贡献 非常欢迎你的加入! 或者提交一个 Pull Request. 标准 Readme 遵循 行为规范 如果想要提交自己的题目,只要放到合适的目录中并且在文件头部和提前选定好合适的文件名即可! 贡献者 chri3z 使用许可 MIT :copyright: chri3z 立即下载

相关推荐

Win10自动更新怎么永久关闭?有效的Win10强制更新关闭方法

之前小编为大家分享过一些Win10彻底关闭Windows Update自动更新的方法,主要是通过一些如设置流量计费或借助一些专门的小工具来实现,但往往会发现,Win10自动更新就像打不死的小强,不管怎么关闭,之后还是会自动更新,让不少小伙伴颇为不爽。今天小编带来了这篇改进型教程,通过全方位设置,彻底关闭Win10自动更新,感兴趣的小伙伴不妨试试吧。 ...

jianai0602的博客 108万+

1501. Countries You Can Safely Invest In----取一个字符串左边N个字母 left(string, N)

TablePerson: +----------------+---------+ | Column Name | Type | +----------------+---------+ | id | int | | name | varchar | | phone_number | varchar | +----------------+---------+ id is the primary key for this table..

betty1121的博客 412

PLC与变频器联动控制:从开关量、模拟量到通讯的接线与编程实战

在工业自动化系统中,电机调速控制是核心需求之一,其关键在于实现可编程逻辑控制器(PLC)与变频器之间的可靠联动。其基本原理是通过PLC输出控制信号,由变频器接收并驱动电机按设定速度运行。这项技术的核心价值在于实现电机的软启停、精确调速与节能控制,广泛应用于风机、水泵、传送带及精密张力控制等场景。其中,开关量控制以其接线简单、抗干扰能力强的特点,成为基础且可靠的方案;而模拟量控制则能实现无级平滑调速,满足更高精度的工艺要求。本文以西门子、三菱等主流品牌为例,深入解析了这两种主流控制方式的硬件接线、参数设置与梯

741

LeetCode常见报错解释

报错信息:expected declaration or statement at end of input 报错信息:==42==ERROR: AddressSanitizer: heap-buffer-overflow 报错信息:warning: operator '>>' has lower precedence than '+'; '+' will be evaluated first [-Wshift-op-parentheses] int mid = l + r >> 1;

openallzzz 7428

LeetCode和牛客网的对比

今天参加了校园风暴周的算法岗笔试题,虽然坚持到了最后一秒,但是没有完全答对一道题,说起来真的是惭愧。我在这里就说一说我的感受吧:     我之前基本不在牛客网上练习,一直都是练习LeetCode,突然去牛客网上在线笔试,真的很是不习惯的,我就简单分析一下吧。   1.格式控制,牛客网上的每道题都需要写完整一个程序所需要的部分,包括头文件,主函数,功能函数。这也就意味着数据结构等部分都需要自己去

only_do_IT 4万+

人工智能入门系列之一: 鸢尾花(Iris)多分类的神经网络详解及代码实现

这是最好的时代,我们一起来打造属于自动驾驶汽车上路、无人机飞天、智能机器人管工厂的AI未来 人工智能领域分化为两个阵营:其一是规则式(rule-based)方法,在人工智能早期占主峰;其二是神经网络(neural network)方法,后起之秀。随着硬件水平的提高,算力的指数式增长;人工智能的重心已经从规则式的专家时代转移到神经网络的数据时代。 “神经网络”不选择把人脑熟稔的逻辑规则传授给计算机...

NLP家的码奴小荷的博客 2万+

LeetCode 和 牛客网 的巨大不同!!!!

少写了一个空格,所有用例都不能通过,这对一个习惯了LeetCode是极不友好的,希望我能快点习惯

Mason97的博客 3050

PHP服务端 苹果支付(IAP)处理

公司做的app需要做IAP订阅支付,开始觉得和微信的支付流程差不多,做起来还是有点麻烦,主要是网上的文章很少,不能拿来主义。自己做完总结一下,希望对小伙伴们有帮助我就很欣慰了。代码写的不好 不要喷我。。。 首先讲一下我的业务逻辑,也就是php服务端需要做什么事情。 先上图: 下面我详细的讲一下每...

山水的博客 9608

牛客网与leetcode刷题(高频题中简单or中等的)

1、反转链表 反转链表 https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=190&tqId=35203&rp=1&ru=%2Factivity%2Foj&qru=%2Fta%2Fjob-code-high-rd%2Fquestion-ranking&tab=answerKey

hanhan的博客 2180

openEuler 搭建 Nginx + MySQL + Redis + 自动备份教程

对外入口IP(用户浏览器访问的IP):Nginx所在虚拟机IP后端服务IP:proxy_pass后面写的地址,可以是本机127.0.0.1,也可以是别的机器Nginx反向代理是中间人,有两条TCP连接: 连接1:浏览器 ↔ Nginx(源IP:Windows主机,目的IP:虚拟机IP) 连接2:Nginx ↔ 后端应用(源IP:虚拟机IP,目的IP:后端IP)

weixin_44955867的博客 301

Genesis物理引擎实战指南:轻量级确定性刚体仿真核心

刚体物理仿真作为机器人控制、嵌入式运动学验证和确定性游戏开发的基础技术,其核心在于数值稳定性、跨平台可复现性与约束求解精度。本文围绕线性互补问题(LCP)求解、半隐式欧拉积分和零依赖C++实现三大关键技术展开,解析如何在无GUI、低算力环境下构建可单步调试、帧级可控的确定性仿真系统。重点覆盖碰撞检测数学建模、关节局部坐标系绑定、质量-惯性张量一致性校验等工程落地关键点,适用于STM32、树莓派及教育实验场景。内容深度结合Genesis Physics Engine的源码实践,直击‘穿模’‘NaN’‘关节发软

ciya3282的博客 788

MySQL 运维实战:从源码安装到 MHA 高可用

一篇把 MySQL 从「装起来」到「跑得稳」串成完整闭环的实践笔记。全文按真实运维路径展开:**源码安装 → 基础 SQL → 数据导出 → 备份恢复 → 主从复制与读写分离 → MHA 高可用**,所有命令均可直接复现,环境为 CentOS 7 + MySQL 5.7.17。

年轻的时候很穷,经过我多年的努力,终于不再年轻。 867

core_analyzer分析c++程序内存占用

环境:centos; 进程:单进程多线程c++程序; 问题:1. 分析系统内存占用; 2. 分析ptmalloc内存空洞(bins上的空闲chunk的大小); 包括:1. 占用了很大内存的c++进程; 2. gcore(在进程不core dump的情况下生成core文件); 3. core_analyzer(分析gcor...

weixin_41644391的博客 4053

Mac M 系列 MySQL9.7.1 安装 & 环境变量 & 故障排查手册

适用:macOS + MySQL 9.7.1 arm64(官网 dmg 包)问题场景:初始化 data 目录失败、socket 报错、忘记 root 密码。

weixin_49326024的博客 249

MySql高频面试八股开源笔记总结

MySQL事务具备原子性(Undo Log)、持久性(Redo Log)、隔离性(MVCC与锁)和一致性。通过Redo Log实现崩溃恢复,Undo Log支持回滚与MVCC多版本控制,BinLog用于主从复制。MVCC基于版本链与Read View实现读写并发,不同隔离级别通过Read View生成时机区分:RC每次查询生成新视图,RR仅首次生成。索引使用B+树,支持范围查询与高效随机访问,覆盖索引避免回表。分库分表解决单表瓶颈但引入分布式难题,应优先优化索引、缓存与读写分离。SQL优化核心为避免索引失效

记录大学学习学习成长过程,欢迎各位一起交流 302

逆向工程Python爬虫——国税局发票查验平台

前言 这是一篇含金量很高的干货文章,笔者将手把手带领各位一步一步地实现爬取国家税务总局全国增值税发票查验平台(以下简称“查验平台”)。这个想法诞生在19年初,当时在做一款通过扫描二维码就可以查验发票的小程序。 当时由于笔者学艺尚浅,没办法模拟请求爬取查验平台,所以最终采用的技术方案是通过web自动化测试工具selenium控制浏览器去模拟查验步骤,即使这样,开发过程也是困难重重,不过最后笔者和伙伴们成功实现了整套流程,最后开发出的产品口袋发票夺得了包括2019微信小程序开发大赛赛区三等奖在内的多个奖项。 但

weixin_43102379的博客 1万+

MySQL系列 (1):数据库原理

数据库是后端开发、运维学习的基础。很多人学习 MySQL 上来就直接敲 SQL 命令,忽略底层理论,后期做表设计时就容易出现冗余、关系混乱的问题。 本文是 MySQL 系列第一篇,主要梳理数据库前置理论知识。我们会了解数据的分类、数据管理的发展历程,认识 DBMS、关系数据库,学习 E‑R 模型与实体关系,搞懂数据库三大范式,最后简单认识 SQL 语言的五大分类。

2301_79710376的博客 208

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL 触发器有哪些应用场景?从入门场景到避坑实战

触发器是数据库自动化工具,适合用于自动维护时间字段、日志记录、数据校验、软删除和简单同步等低风险场景。但严禁在核心业务、高并发系统或复杂逻辑中使用,避免引发性能瓶颈、事务回滚和排查困难。互联网大厂普遍禁用触发器,因其易导致逻辑隐形、难以调试与分布式架构不兼容。最佳实践:逻辑极简、不跨表联动、仅限低并发系统使用,牢记“简单兜底放心用,核心业务绝不碰”。

2201_75821470的博客 177

python-字符串全解(六):正则表达式-位置断言

本文系统讲解了正则表达式中的位置断言,强调其不占用字符、仅判断位置的特性。重点介绍了^、$、\b、\B、\A、\Z等断言及其多行模式(?m)的应用。通过实例说明,如字符串/行开头结尾匹配、单词边界判断及非占位特性,展示了位置断言在实际匹配中的灵活应用。最后指出,位置断言后可继续匹配后续字符,为后续分组机制的学习奠定基础。

ttug22的博客 251

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【Python量化系统工程实战 #01】数据存储选型 CSVSQLiteMySQL 对比与 SQLite 实战建库

系列开篇:从「会写策略」推进到「会搭系统」。本篇先解决最基础的存储选型——回测和实盘都要把 K 线落到本地,三种方案怎么选?

2501_94338261的博客 357

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MySQL 升到 8.4 前的兼容性自检清单

8.0 是 2018 年 4 月 19 日 GA 的,一路服役了八年。很多生产库现在还跑着它。大部分人第一次听说要升级,是在一份安全扫描报告里。 升级教程到处都是,讲怎么升的居多。少有人讲升之前该查什么。

sangev5的博客 470

Java 转 go 学习 - MYSQL

我们可以使用gorm标签配置映射的字段等信息,下面是使用的标签总结。标签类别标签名称功能说明示例用法字段映射column自定义数据库列名忽略字段,不参与数据库操作gorm:"-"约束控制primaryKey设置为主键unique唯一约束或唯一索引index创建普通索引not null非空约束default设置默认值数据类型type指定列数据类型size定义字段长度时间处理创建时自动记录时间更新时自动记录时间权限控制<-:create仅允许创建时写入->只读gorm:"->"

Jwasx的博客 95

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【mysql】Windows MySQL 8.4.10 绿色免安装喂饭教程

本文详细介绍了Windows下MySQL 8.4.11绿色免安装版的部署流程:解压至指定路径,配置my.ini文件,初始化数据库并获取临时密码,通过注册服务或直接运行启动,连接后修改root密码。支持环境变量配置与项目打包分发,提供完整卸载脚本及常见问题解决方案,适用于本地开发、演示及项目交付,强调路径规范与安全注意事项。

cnxzzcn的博客 356

MySQL JSON查询为什么慢

对于暂时不方便改表结构的项目,则根据 MySQL 版本和实际需求使用生成列,把 JSON 中的固定属性映射出来,再给生成列增加索引。最近排查一个 PHP 后台时遇到过这种情况:业务刚上线时查询很快,后来数据量增加到几十万条后,只要按 JSON 字段里的某个属性筛选,接口就会明显变慢。写法看起来很方便,但每次查询都需要解析 JSON 内容,普通索引也无法直接利用,数据量一大就容易出现大量扫描。JSON 字段仍然保留,用来存放不固定、低频读取的扩展信息,而不是把所有业务字段都塞进去。

2601_96636891的博客 163

mysql和redis面试题总结

索引类似与书的目录,为了提⾼数据查询的效率。最左匹配原则要求查询条件中的列应该从索引的最左边的列开始,并且不能跳过中间的列。如果查询条件不按照索引的顺序进⾏匹配,那么索引可能会失效。范围查询的字段可以⽤到联合索引,但是范围查询字段的后⾯的字段⽆法⽤到联合索引。

K_CRACKING的博客 184
上一篇: 解决MySQL Localhost连接不上的问题
下一篇: Pandas&Numpy 数据处理笔记
Kaze-1
博客等级 码龄7年 7粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kaze-1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值