GitHub上有很多有意思的sql查询语句和项目。
SQL Murder Mystery: 一个有趣的交互式游戏,通过解决 SQL 查询谜题来解决一个虚构的凶杀案。SQL Style Guide: 一个关于 SQL 编码风格和最佳实践的指南,其中包含一些有趣的示例和案例研究。SQL-Interview-Preparation: 这个存储库收集了一些常见的 SQL 面试问题和解答,可以帮助你准备 SQL 面试。SQL Advent Calendar: 这个存储库收集了每年 12 月期间发布的有趣的 SQL 相关的博客文章和示例代码,涵盖了各种主题。SQL Queries for Data Analysis: 一个收集了用于数据分析的 SQL 查询示例的存储库,包含了从简单到复杂的查询示例。
还有一些展示了高级和复杂SQL技巧,可以让我们在查询和处理方面更加灵活的语句
使用自连接查询找出同一表中具有相同值的记录:
FROM table_name A, table_name B
WHERE A.column_name = B.column_name
AND A.id <> B.id;
在查询结果中使用 CASE 表达式进行条件判断和转换:
CASE
WHEN age < 18 THEN ‘未成年’
WHEN age >= 18 AND age < 65 THEN ‘成年’
ELSE ‘老年’
END AS age_group
FROM customers;
使用窗口函数计算累积和(Cumulative Sum):
SUM(revenue) OVER (ORDER BY date) AS cumulative_sum
FROM sales;
利用交叉连接(CROSS JOIN)生成所有可能的组合:
FROM table_A A
CROSS JOIN table_B B;
使用递归查询处理树状结构数据:
SELECT id, name, CAST(name AS VARCHAR(255)) AS path
FROM categories
WHERE parent_id IS NULL
UNION ALL
SELECT c.id, c.name, CONCAT(tp.path, ‘ > ‘, c.name)
FROM categories c
INNER JOIN tree_path tp ON c.parent_id = tp.id
)
SELECT id, name, path
FROM tree_path;
SQL语句如何优化?
要遵循一些最佳实践,一张图就可以知道高质量SQL是怎么写的:
我们根据图片总结一下所有需要注意的事项
保持简洁:
编写简洁明了的SQL语句。避免使用过于复杂的逻辑。尽量减少嵌套子查询,使用连接(JOIN)或窗口函数等方法简化查询。
使用正确的数据类型:
选择与数据内容匹配的数据类型。根据数据特性选择合适的数据类型,如整数、小数、日期和时间、字符串和布尔值。
格式化:
使用一致的缩进、空格和换行。保持代码整洁、易读。
为表和列取有意义的名称:
使用描述性的表和列名。遵循团队或组织的命名规范。
使用别名:
为表和列使用简短的别名,使代码更简洁。别名应该简洁且具有描述性。
注释:
保持注释简洁明了。解释代码的目的和功能。使用标准的注释格式。更新注释以反映代码的变化。
避免使用 SELECT *:
明确列出所需查询的列名。减少不必要的数据传输和性能损失。
优化查询性能:
关注潜在的性能问题,如全表扫描、缺乏索引等。合理地使用索引,以提高查询性能。
使用事务:
在处理多个相关操作时,使用事务来保证数据的一致性。注意事务的隔离级别和锁定策略。
测试和审查:
为SQL语句编写测试用例。验证查询结果的正确性和性能。邀请同事或团队成员审查代码。关注可读性、性能和功能正确性。
更多内容分享
分享MySQL 28个小技巧(干货,收藏!)
为什么MySQL 索引要使用B+树
为什么MySQL 索引要使用B+树,而不是B树?或者其他树?
如何提高查询的效率?
千万级的大表要怎么优化?
来源:知乎 www.zhihu.com
作者:黑马程序员
【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载
此问题还有 51 个回答,查看全部。
延伸阅读:
请问怎么写这个sql查询语句?
© 2023, 免責聲明:* 文章不代表本網立場,如有侵權,請盡快聯繫我們 info@uscommercenews.com * 讀者評論僅代表其個人意見,不代表本網立場。評論不可涉及非法、粗俗、猥褻、歧視,或令人反感的內容,本網有權刪除相關內容。.