leetcode_database由易到难记录一(简单)

2023-11-10 18:32

本文主要是介绍leetcode_database由易到难记录一(简单),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目来源链接
分类 - Database
其中会员才能看的题需要注明出处:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

细节问题回顾
1.SQL是否对大小写敏感:
关键字、表中的字段函数名均不敏感。

简单题目、解答、相关概念

1.组合两个表
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State

select p.FirstName,p.LastName,a.City,a.State 
from Person as p left join Address as a on p.PersonId = a.PersonId

2.第二高的薪水
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。没有则返回null。

相关概念:
limit子句和offset子句用法:
【MySQL】LIMIT以及LIMIT OFFSET 使用方法介绍

select(select distinctsalary from employeeorder by salary desclimit 1 offset 1) as SecondHighestSalary

3.超过经理收入的员工
给定 Employee 表,编写一个SQL查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe是唯一一个收入超过他的经理的员工。
运行错误原因:
输出的表格结构不符合题目要求

select a.name as Employee #此处的as语句将决定输出结果的属性名
from employee as a , employee as b
where a.managerid = b.id and a.salary > b.salary

4.查找重复的电子邮箱
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
说明:所有电子邮箱都是小写字母。

select Email
from Person
group by Email
having count(Email) >1 #注意SQL语法,计数(计算有多少条数据)使用count

5.从不订购的客户
某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。

select Customers.name as Customers
from Customers
where Customers.Id not in 
(select Customerid from Orders)

6.删除重复的电子邮箱
编写一个SQL查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留Id最小的那个。
注意:
自连接效率较低,待提升

delete p1
from Person as p1,Person as p2
where p1.email = p2.emailand p1.id > p2.id 

7.上升的温度
给定一个Weather表,编写一个SQL查询,来查找与之前(昨天的)日期相比温度更高的所有日期的Id。
注意:
不能只因为表面的ID与日期之间的关系就不使用日期来比较今天和昨天的差别。
datediff函数的使用方法是如何的?

select w1.id as Id 
from Weather w1, Weather w2
where w1.Temperature > w2.Temperature#and w1.id = w2.id + 1and datediff(w1.RecordDate,w2.RecordDate) = 1 #w1 是 w2的后一天

8.游戏玩法分析
写一条 SQL 查询语句获取每位玩家第一次登陆平台的日期

select player_id, min(event_date) as first_login
from Activity
group by player_id 

9.游戏玩法分析 II
请编写一个 SQL 查询,描述每一个玩家首次登陆的设备名称
注意:
where的效率比join慢

select a.player_id, a.device_id 
from Activity as a
where (a.player_id, a.event_date) #注意where后面包含两个以上的字段要加括号
in (select player_id, min(event_date) as first_loginfrom Activitygroup by player_id)

10.员工奖金
选出所有 bonus < 1000 的员工的 name 及其 bonus。

select e.name as name, b.bonus as bonus 
from Employee as e left join Bonus as b 
on e.empId = b.empId
where b

这篇关于leetcode_database由易到难记录一(简单)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384517

相关文章

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也