力扣数据库题库学习(4.23日)

610. 判断三角形

问题链接
问题图片

解题思路

题目要求:对每三个线段报告它们是否可以形成一个三角形。以 任意顺序 返回结果表。
对于三个线段能否组成三角形的判定:任意两边之和大于第三边,对于这个表内的记录,要求就是(x+y>z,x+z>y,y+z>x)。再看最后生成的结果,需要生成一个新字段triangle
这个很简单,我们使用case语句即可搞定

SELECT x,y,z,
CASE
    WHEN x+y>z AND x+z>y AND y+z>x THEN "Yes"
    ELSE "No"
END AS triangle
FROM Triangle;

619. 只出现一次的最大数字

问题链接
问题图片

解题思路

找出最大的 单一数字 。如果不存在 单一数字 ,则返回 null 。
这个问题解题步骤就是先找到表内的单一数据集【没有就返回null】,并从单一数据集内提取出最大的数据。
解题思路很简单:

  1. 找到单一数据集合
    根据num数据分组,找到COUNT(num)为1的数据集合
  2. 使用查询语句,从数据集合内使用MAX函数提取最大的数据

代码如下:

SELECT MAX(num) AS num FROM 
(SELECT num FROM MyNumbers
GROUP BY num
HAVING COUNT(num)=1) AS unique_nums;

620. 有趣的电影


问题链接

问题图片

解题思路

题目要求:编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片。返回结果按 rating 降序排列。
我觉得这个题目考的就是根据字段关键词反向匹配,正向匹配还有排序。这里我们可以来构造匹配条件
非 boring :description !=“boring”
id 为奇:id % 2 != 0
排序:ORDER BY rating DESC
sql语句如下:

SELECT * FROM cinema WHERE description !="boring" AND id  % 2 != 0
ORDER BY rating DESC
;

627. 变更性别

问题链接
问题图片

解题思路

题目要求:请你编写一个解决方案来交换所有的 ‘f’ 和 ‘m’ (即,将所有 ‘f’ 变为 ‘m’ ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。注意,你必须仅使用一条 update 语句,且 不能 使用 select 语句。
思路:这道题其实就是检测我们update语句和CASE语句的使用
update语句的基本语法是:

UPDATE 表名
SET1 =1,2 =2, ...
[WHERE 条件];

CASE语句基本语法就是:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    WHEN conditionN THEN resultN
    ELSE default_result
END

先来构建CASE语句

CASE
	WHEN sex = "f" THEN "m"
	WHEN SEX = "m" THEN "f"
END

再来构建UPDATE语句

UPDATE Salary
SET sex=(这里填上刚刚的case语句即可)
;

搞定!
完整的sql语句如下:

UPDATE Salary
SET sex=
CASE
	WHEN sex = "f" THEN "m"
	WHEN SEX = "m" THEN "f"
END;

1050. 合作过至少三次的演员和导演

问题链接
问题图片

解题思路

问题要求:编写解决方案找出合作过至少三次的演员和导演的 id 对 (actor_id, director_id)
这道题其实考的就是GROUP BY分组的使用
每一条记录表示一个演员与导演合作,那么已actor_id和director_id作为分组条件,再计算每组内的 数据量,即可找到合作次数>=3的d 对 (actor_id, director_id)
完整的sql语句如下:

SELECT actor_id,director_id
FROM ActorDirector
GROUP BY actor_id,director_id
HAVING COUNT(*)>=3;

总结

这几道题考的知识点主要有

  1. CASE语句的使用
  2. COUNT聚合函数
  3. GROUP BY 分组
  4. ORDER BY 排序
  5. UPDATE SET语句
    这些都是非常简单常用的方法,需要熟练掌握。

相关推荐

  1. 数据库题库学习(5.6)--1683. 无效的推文

    2024-04-24 12:20:05       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-24 12:20:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-24 12:20:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-24 12:20:05       82 阅读
  4. Python语言-面向对象

    2024-04-24 12:20:05       91 阅读

热门阅读

  1. web前端代码指南(vue3)

    2024-04-24 12:20:05       30 阅读
  2. ElasticSearch 入门学习

    2024-04-24 12:20:05       33 阅读
  3. 前后端连接完后的各种安全问题

    2024-04-24 12:20:05       37 阅读
  4. C++中的抽象类

    2024-04-24 12:20:05       34 阅读
  5. draw.io使用心得

    2024-04-24 12:20:05       35 阅读
  6. draw.io使用心得

    2024-04-24 12:20:05       35 阅读
  7. Hibernate6根据xml获取ddl sql语句

    2024-04-24 12:20:05       33 阅读
  8. Node.js 环境变量动态获取和静态获取的区别

    2024-04-24 12:20:05       30 阅读