0
点赞
收藏
分享

微信扫一扫

【力扣MySQL强化练习题】

kmoon_b426 2022-01-30 阅读 64

192c810922864ba992429dcc52304b3b.gif


目录

题目一:组合两个表

题目概述

解题思路

代码测试

知识点小结

联表查询之外连接

题目二:第二高的薪水

题目概述

解题思路

代码测试

知识点小结

limit子句

ifnull函数

题目三:超过经理收入的员工

题目概述

解题思路

代码测试

知识点小结

内连接与外连接

题目四:查找重复的电子邮箱

题目概述

解题思路

代码测试

知识点小结

group by与having子句

题目五:从不订购的顾客

题目概述

解题思路

代码测试

知识点小结

内连接与外连接


题目一:组合两个表

题目概述

 题目:


解题思路


代码测试

 这里我们使用的是左外连接

select FirstName, LastName, City, State from Person left join Address on Person.PersonId = Address.PersonId;

在LeetCode上执行测试是否成功

94adc7b3891944d6acbac382f39d4613.png

 与预期结果一致,通过!

3328fb5493df46b19ed587637a89b50d.png


知识点小结

联表查询之外连接

29f90f28a8d34d97bcb99fe4815dabb8.gif

题目二:第二高的薪水

题目概述


解题思路

 方式一

方式二


代码测试

方式一

select ifnull((
select max(salary) from Employee 
where 
salary < (select max(salary) from Employee)),null)
as SecondHighestSalary;

02c943e3b74f4a2da119b0d0dbcf0b61.png

 输出与预期结果一致,答题成功!9ab014cdf16746aab4da80ca7e53b962.png

方式二

limit

select
    ifnull(
      (select distinct Salary
       from Employee
       order by Salary desc
        limit 1,1), 
    null) as SecondHighestSalary;

8436dba274e842ffb17c22c41cd54229.png

 输出与预期结果一致,答题成功!

5288d8818b224d8181703f0156c4530a.png

 limit offset

SELECT
    IFNULL(
      (SELECT DISTINCT Salary
       FROM Employee
       ORDER BY Salary DESC
        LIMIT 1 OFFSET 1),
    NULL) AS SecondHighestSalary

0510cd5a5e83405da008745a047c6349.png

 输出与预期结果一致,答题成功!

4f8c5a015217448288d1b3e5870a47f9.png


知识点小结

1a3937ffb53f48bc8a171ced06ac1c1d.gif

题目三:超过经理收入的员工

题目概述


解题思路

方法一

方法二


代码测试

 方法一

方法二


知识点小结

内连接与外连接

1e7c6a01a5de4f17bfccd0ba92924bfe.gif

题目四:查找重复的电子邮箱

题目概述

 题目:


解题思路

方法1

方法2

方法3


代码测试

 方法1

select Email from
(select Email, count(Email) as num from Person group by Email) as temporary
where num > 1;

输入题解,进行测试

5e699d898b724349b1e581c461675a9b.png

 测试成功!

81f627166e5f4aee90b29271ade679ae.png

方法2

select Email from Person group by Email having count(Email) > 1;

输入题解,进行测试

b9234277cc894f608a92a2788388a550.png

 测试成功!

3055390eac144c48b18c7f45cf7f2d48.png

方法3

select distinct  a.Email from Person a,Person b where a.Email = b.Email and a.id <> b.id;

输入题解,进行测试

f677b6734ed2426f8a6439429780f482.png

测试成功!

02af12dc3fe04fa78db923e50739477a.png


知识点小结

group by与having子句


最后呢小梦再分享一下SQL查询语句各关键字的执行顺序,可以拿小本本记一下了,有用的很~

fba7c5b637e6480e8603d3313a272ae7.gif

题目五:从不订购的顾客

题目概述


解题思路

方法一

方法二


代码测试

 方法一

方法二


知识点小结

内连接与外连接


😀感谢小伙伴们支持,如果有什么疑问,欢迎留言询问,小梦定知无不言,言无不尽!

7b20a9f72af0451ba9d60436bed5a5ed.gif

举报

相关推荐

0 条评论