我的SQL技能相当有限,因为我发现自己最近使用的是数据库(Oracle),所以我想超越基本的选择语句。
我想写一些查询来执行诸如从多个表中获取数据,总和数量,比较日期,组,过滤等等。
您可以推荐哪些网站将SQL报告技能提升到更高级别?
答案 0 :(得分:11)
选择Joe Celcko的SQL For Smarties。这是明确的把你的sql-to-next-level书籍之一。否则,只需继续编写查询。
确保您了解联接。从一开始,我的SQL方法一直是行数驱动的 - 换句话说,当我编写一个复杂的查询时,我总是#1确保它返回正确的行数。如果您的行数正确,那么您的总和/组/聚合都将是正确的。他们非常容易搞砸。
确保您了解数据。确保您了解密钥和唯一性,以便您可以强制执行联接。
你也可以阅读asktom.oracle.com了解很多非常酷的SQL技巧。 Laurent Schneider也是非常尖端的sql-wise。如果我在过去的5 - 6年里没有将问题设置为我的主页,那么我不会成为DBA /开发人员的一半。
最后,确保您了解基于集合的操作。将结果集视为一个整体,而不仅仅是行的集合。它会像你一样点击。这与行计数驱动的方法有关。
答案 1 :(得分:4)
我知道这不是在线的,但它适合您的账单T:
我建议你拿一份Anthony Mollinaro的SQL Cookbook。它描述了如何完成许多超出基本SELECT FROM WHERE的复杂事物。在一个上一个。生活,当对prev进行大量查询时。工作,那本书是我的救星,人们借了那本书。它有很多非常清晰的例子,它们的范围从简单(如何检索表上的行子集)到复杂(使用窗口函数生成直方图)。
这不是免费的,但这本书会很快收回成本,而且我想我会回答你会遇到的大部分问题。注意:我与O'Reilly或Mollinaro先生没有任何联系,我只是认为这本书很棒且非常有用。
答案 2 :(得分:2)
阅读Oracle数据仓库指南的第20,21和22章:http://download.oracle.com/docs/cd/B28359_01/server.111/b28313/toc.htm。它是关于分组,分析和模型子句。
答案 3 :(得分:1)
W3 Schools SQL Tutorial是个好地方。它给出了不同类型连接的一些示例,并详细介绍了许多函数(即sum,count,avg)。在理解复杂查询之前,我真的必须在SQL中构建一个基础。
答案 4 :(得分:1)
我刚刚找到了一个名为 SQL Tutorial 的网站,我认为该网站非常好,并希望与社区分享。它位于http://www.sql-tutorial.com/