文章目录
0. 学习目标
SQL 学习与练习
记录力扣刷题,记录解题思路。
直接开始!
1. Leetcode_1757 可回收且低脂的产品
题目链接
Leetcode_1757:https://leetcode.cn/problems/recyclable-and-low-fat-products/?envType=study-plan-v2&envId=sql-free-50
题目描述
表:Products
| Column Name | Type |
|---|---|
| product_id | int |
| low_fats | enum |
| recyclable | enum |
product_id 是这个表的主键。
low_fats 是枚举类型,取值为以下两种 (‘Y’, ‘N’),其中 ‘Y’ 表示该产品是低脂产品,‘N’ 表示不是低脂产品。
recyclable 是枚举类型,取值为以下两种 (‘Y’, ‘N’),其中 ‘Y’ 表示该产品可回收,而 ‘N’ 表示不可回收。
写出 SQL 语句,查找既是低脂又是可回收的产品编号。
返回结果 无顺序要求 。
查询结果格式如下例所示:
Products 表:
| product_id | low_fats | recyclable |
|---|---|---|
| 0 | Y | N |
| 1 | Y | Y |
| 2 | N | Y |
| 3 | Y | Y |
| 4 | N | N |
Result 表:
| product_id |
|---|
| 1 |
| 3 |
只有产品 id 为 1 和 3 的产品,既是低脂又是可回收的产品。
题解
SELECT product_id
FROM Products
WHERE low_fats='Y' AND recyclable = 'Y'
思考
没有难度,入门,提升信心。
2. LeetCode_584 寻找用户推荐人
题目链接
LeetCode_584:https://leetcode.cn/problems/find-customer-referee
题目描述
给定表 customer ,里面保存了所有客户信息和他们的推荐人。
| id | name | referee_id |
|---|---|---|
| 1 | Will | NULL |
| 2 | Jane | NULL |
| 3 | Alex | 2 |
| 4 | Bill | NULL |
| 5 | Zack | 1 |
| 6 | Mark | 2 |
写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。
对于上面的示例数据,结果为:
| name |
|---|
| Will |
| Jane |
| Bill |
| Zack |
2.1 题解
2.1.1 直接查询
SELECT name
FROM customer
WHERE referee_id IS NULL OR referee_id <> 2
2.1.2 子查询
SELECT name
FROM customer
WHERE id NOT IN (
SELECT id
FROM customer
WHERE referee_id = 2
)
2.1.3 IFNULL 函数
SELECT name
FROM customer
WHERE IFNULL(referee_id, 0) <> 2
2.2 小结
子查询 以及 用 IFNULL函数的执行效率要比直接查询要高一些。
IFNULL函数使用方式:
IFNULL(字段名,若该字段为NULL替换的值)
3. LeetCode_1448 文章浏览
题目链接
LeetCode_1448:https://leetcode.cn/problems/article-views-i/
题目描述

题解
这题是比较综合的单表查询基础题。主要复习了去重、别名。
SELECT DISTINCT author_id AS id
FROM Views
WHERE author_id = viewer_id
ORDER BY id ASC
4. LeetCode_1683 无效的推文
题目链接
LeetCode_1683:https://leetcode.cn/problems/invalid-tweets/
题目描述

题解
如果对 SQL 的一些 内置 函数不熟悉,要么先查询,要么根据题意尝试。我自己做的时候就是根据题意尝试的。
LENGTH( string )
SELECT tweet_id
FROM Tweets
WHERE LENGTH(content) > 15
CHAR_LENGTH( string )
SELECT tweet_id
FROM Tweets
WHERE CHAR_LENGTH(content) > 15
CHAR_LENGTH 与 LENGTH 异同:
- LENGTH : 单位字节,汉字根据字节会算不同的长度(具体用到再查),英文、数字字符算1个字节。
- CHAR_LENGTH : 单位字符,不管是汉字还是字符都算1个字符
SQL学习实践:LeetCode题目详解及优化,
本文介绍了四个SQL相关LeetCode题目,包括查找可回收低脂产品、寻找非推荐人用户、统计文章浏览作者和筛选无效推文。重点讲解了题解方法,如直接查询、子查询和IFNULL函数的运用,以及字符长度函数LENGTH和CHAR_LENGTH的区别。
1465

被折叠的 条评论
为什么被折叠?



