2009-06-30 62 views
7

我想通过编写针对Northwind数据库的查询来更熟悉SQL。寻找习题来学习SQL,使用Northwind数据库

我正在寻找一些练习,可以帮助我学习SQL和SQL Server的功能。练习中有解决方案是非常重要的,在复杂的情况下,如果对查询有解释,这将非常有用。

感谢您的答案,但迄今为止我还没有发现什么我在寻找: 有没有免费的资源,可在网上,无需注册,我能找到的这些演习的清单?

+0

这是一个重复的http://stackoverflow.com/questions/1100703/northwind-query-exercises-例子。 – jason 2010-01-19 02:17:12

+0

Andrew-Dufresne在底部添加了一个很好的答案,需要更多的提议 – MedicineMan 2011-07-28 18:32:21

回答

2

学习在我看来是最好的工作方式在一个小型的爱好项目上。例如,假设您对体育运动感兴趣,请选择您最喜欢的运动,并设想如何以SQL数据库的形式以最优雅的方式为运动统计数据建模。你会开始思考如何从数据库中提取数据,更新数据,等等。

每当遇到问题时,可以查看参考书(上面提到的T-SQL查询书是非常好的一本书),并找出最好的方法。

玩具的例子,练习很好。但在我看来,除非你真的面临一个问题并且自己解决问题,否则基本面不会落入你的脑海。

像这样的文章http://www.sommarskog.se/dynamic_sql.html也非常有帮助,因为它们提供了深入了解如何,为什么和为什么不。

还检查了这个链接http://www.sql-server-performance.com/tips/related_web_links_p1.aspx

+0

这一般起作用,但我发现对于我的爱好项目,即使涉及数据库的项目,大部分时间都花在应用程序层而不是数据库层上。也许问题在于我的项目不是以数据库为中心的。在任何情况下,我仍然想要练习,就像在查询之后查询后查询磨刀石并敲出查询之类的东西。 – MedicineMan 2009-07-01 22:22:40

1

如果您有方便的Reporting Services,甚至Visual Studio,只需创建一些包含聚集,汇总,计数等的报告,就可以了解如何将数据用作信息并真正提高您的SQL技能。

我在电话公司工作,电话公司一直在这里工作。我有this书坐在我的桌子上,我发现真的很方便。

祝你好运! :)

+0

我对Reporting Services不熟悉。他们是什么?报告和查询有什么区别? – MedicineMan 2009-07-01 22:25:50

2

有几件事情把重点放在将行使大量的SQL的地区,如果你要来写它的很多,你应该知道:

  • 连接 - 内部和外部( LEFT和RIGHT JOIN之间的区别)
  • GROUP BY子句和使用SUM,MIN,MAX等聚合函数的方法。
  • WHERE - 用于筛选记录查询中返回
  • 子查询 - SubqueriesCorrelated subqueries
  • CASE,COALESCE,BETWEEN,转换,CAST功能/报表

找到一个很好的数据集,并尝试运行一些有意义的查询。确保你从一个你想解决的问题开始(即Northwind数据库中居住WA的人的平均订单金额是多少?)。