刷力扣高频SQL50题(基础)总结
此随笔仅总结个人刷SQL题时,突然不会使用的某函数或某方法,大佬勿看勿喷
- regexp '正则表达式'
一般用于邮箱校验
例题:查找拥有有效邮箱的用户
select *
from users
where mail regexp '^[a-zA-Z]+[a-zA-Z0-9_\\./\\-]*@leetcode\\.com$'
- 窗口函数
窗口函数讲解
函数 + over(partition by 分组 order by 排序) as XXX
函数包括:SUM(),COUNT(),AVG()等等
排序:
- row_number:直接排序,返回1,2,3,4
- rank:相等同名次占排名,返回1,2,2,4
- dense_rank:相等同名次不占排名,返回1,2,2,3
排序后可以加Range限定窗口范围,例如:
RANGE INTERVAL '5' DAY PRECEDING 五天范围内
-
模糊查询 like '%'
太弱智了有道题一时想不出来,就先记着 -
Case When THEN
对标Java中的SWITCH CASE
格式:
(CASE When 条件 THEN 结果
Else 结果
END)
例题:换座位
# Write your MySQL query statement below
SELECT (CASE
WHEN MOD(id,2)=1 and id=(SELECT COUNT(*) FROM Seat) THEN id
WHEN MOD(id,2)=1 THEN id+1
ELSE id-1
END
) as id,student
FROM Seat
ORDER BY id
- MOD(x,y) 取余 相当于%
- UNION 和 UNION ALL联合查询
详情可以看SQL语句中union all和union的区别以及用法 - Concat()和group_concat()拼接字符串
Concat(参数)用于字符串的直接拼接
group_concat(分隔符,参数)用于附加分隔符的字符串拼接 - LEFT(str,x)和RIGHT(str,x)
str的左边x字符和str的右边x字符 - upper()和lower()
将字符大写和小写,可以与LEFT()RIGHT()搭配使用 - 连接方式
- LEFT JOIN 左连接
- RIGHT JOIN 右连接
- INNER JOIN 内连接
- CROSS JOIN 交叉连接,也就是笛卡尔积
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器