【问题标题】:How do you continue to improve your SQL skills? [closed]您如何继续提高您的 SQL 技能? [关闭]
【发布时间】:2008-09-19 12:26:33
【问题描述】:

SQL 开发人员如何跟上 SQL 世界的当前技术和趋势?是否有任何博客、书籍、文章、技术等可用于了解最新信息?

对于 OO、过程和功能程序员来说,他们有很多机会参与各种开源项目,但在我看来,FOSS 途径对 SQL 开发人员来说更加封闭。

想法?

【问题讨论】:

  • 我不知道为什么它被关闭为基于意见。 OP 只是想了解可用的工具来提高他的 SQL 技能。我想指出斯坦福的 Intro to DB 课程。有一个关于 SQL 的部分带有练习练习,您可以在那里运行查询。 https://class.stanford.edu/courses/Engineering/db/2014_1/about

标签: sql-server


【解决方案1】:
【解决方案2】:

SQL 语言的特点是它几乎是一个静态目标。很快你就会着眼于增加对集合论和问题域本身的理解,而不是语言的细节。

真正的肉在语言的任何一边,在数据库本身(如何存储、检索和组织大型数据集)或在应用程序中(使用 ORM 等)

【讨论】:

    【解决方案3】:

    我浏览了答案,显然没有人提到 Stephane Faroult 的工作。

    我强烈建议您考虑“SQL 的艺术”(http://www.amazon.com/Art-SQL-Stephane-Faroult/dp/0596008945),我发现它真的很有趣,而且 - 令人惊讶的是,阅读起来甚至很有趣。

    【讨论】:

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        我通过分析缓慢而复杂的查询并寻找改进方法来改进。这可以在 SQL Server 中通过分析查询计划工具并寻找瓶颈来完成。我还发现Visual Quickstart Guide 指南非常适合快速参考。

        【讨论】:

          【解决方案6】:

          Joe Celko 的 SQL Puzzles and AnswersSQL for Smarties 是目前最好的两本通用 SQL 书籍。两者都是很好的资源,可以为您提供有关您曾经认为需要光标或某些客户端库来完成的棘手问题的想法。对于任何真正感兴趣的 SQL 极客来说,这本书也非常适合休闲阅读,而不仅仅是作为桌面参考。竖起两个大拇指。

          【讨论】:

            【解决方案7】:

            虽然我不是 SQL Server 专家,但总的来说,我发现基于社区的活动是跟上当前模式的好方法。参与开发人员/DBA/营销专家/在此处插入专业社区的潜在结果是,您正在学习新的思维模式并锻炼批判性思维。无论您是什么专业人士,这都是一种成长的好方法。

            【讨论】:

              【解决方案8】:

              SQL 中没有当前技术和趋势。只有你应该已经知道但不知道的东西。学习这些东西的正确方法是痛苦……太痛苦了。

              【讨论】:

                【解决方案9】:

                加入您使用的 DB 风格的邮件列表...或潜伏在 stackoverflow 上;)

                【讨论】:

                  【解决方案10】:

                  大多数“当前”的东西不是 SQL 本身,而是数据库如何存储信息以及如何更快地检索信息。查看其他线程:What are some references, lessons and or best practices for SQL optimization training

                  唯一真正的前沿在于查询计划、索引结构、排序算法等,而不是 SQL 本身。

                  【讨论】:

                    【解决方案11】:

                    您提出这个问题的事实已经是一个好兆头。避免自满是“建议#1”。编写和优化 SQL 是无可替代的。实际使用是保持敏锐度的最佳方式,但存在“以林还林”场景的风险,我们倾向于使用舒适和熟悉的东西。尝试新策略、研究新方法、寻找新方法来训练我们的大脑思考集合、SQL、关系理论,以及掌握我们使用的特定方言的新发展,这些都是优秀 SQL 开发人员的标志。

                    现在有很多不错的博客。我主要在微软领域工作,所以我喜欢SQLTeam.com

                    Usenet 是一个闲逛和做出贡献的好地方。有许多与 SQL 相关的新闻组。通常,您会发现解决别人的问题可以帮助您学习新的策略,或者迫使您研究您每天都不会遇到的语言中尘土飞扬的角落。不过,由于恶意使用,ISP 似乎注定要关闭所有的 Usenet,所以这个可能会走渡渡鸟的道路。

                    另外,一些 IRC 服务器有一个充满活力的 sql 通道,您可以在其中做出同样的改变(只要厚脸皮)。

                    最后,这个网站可能是另一个值得关注的地方,在这里您可以阅读难题的答案,了解这些问题如何适用于您自己的世界,练习并内化这些技巧。也做出贡献,因为看到其他人如何对您的解决方案投赞成票或反对票是 100% 纯正的反馈。

                    当然,那里也有很多精彩的书籍。 Celko 的任何作品都是赢家,在 SQL Server 方面,Kalen Delaney 和 Ron Soukup 写了一些赢家。

                    【讨论】:

                      【解决方案12】:

                      我遇到的最好的事情是处理其他人的 SQL 代码。尤其是遗留业务代码。您想针对某些东西测试您的技能,开始更改一些其他人无法理解的“巫毒代码”。 :)

                      除此之外,我只是尝试关注新版本 SQL 的变化,看看是否有什么可以利用的。

                      【讨论】:

                        【解决方案13】:

                        使用 phpmyadmin 时的闪光提示 很好很详细

                        【讨论】:

                          【解决方案14】:

                          这里有一些有趣的 SSIS 信息。 http://blogs.conchango.com/jamiethomson/default.aspx

                          这里的 Wiki 中也有一些很好的信息: http://wiki.lessthandot.com/index.php/Main_Page

                          对于那些说 SQL 永远不会改变的人来说,SQL Server 2005 和 2008 在 T-SQl 中有一些巨大的变化,这将有助于解决一些在 SQL Server 2000 中难以解决的难题,并且一旦你学习了新的,就会变得容易得多语法,所以是的,有一些东西要跟上。

                          此外,性能调优和 SSIS 也是极其复杂的主题,需要学习很多东西。

                          我确实发现选择不学习高级 SQL 技能的开发人员往往会编写性能不佳的 SQL 代码,一旦数据库中的记录数量增加,他们编写的应用程序往往会变得非常缓慢并且很难修复观点。现在,我正在与开发人员一起修复他们编写的一些错误代码,这些代码实际上导致网站上的每个查询都超时。显然,现在这是一个紧急情况,如果开发人员有更好的 SQL 技能,一开始就可以很容易地以更有效的方式编写代码。

                          【讨论】:

                            【解决方案15】:

                            我从未听说过“SQL 开发人员”这个词。 SQL 应该是您工具箱中的一项技能,例如排序、您喜欢的任何框架、JavaScript 等等。继续提高您的 SQL 技能以继续使用它的最佳方式。

                            【讨论】:

                              【解决方案16】:

                              作为一名开发人员,而不是 DBA,我会关注各种开发人员资源,这通常与 DB 相关,但我并没有专门“努力跟上”。

                              我知道很多,但我也知道还有很多要知道的。在每个项目中,我都必须学习新东西。每个项目还涉及我对过去遇到的类似任务采取不同的方法。

                              如果我到了我认为我一直在做同样的事情的阶段,也许我会有意识地努力采取具体的步骤。但目前,以及在可预见的未来,我正在有机地、在工作中以及按照我的项目要求进行学习。

                              【讨论】:

                                【解决方案17】:

                                阅读:

                                书籍 - Celko(也可以阅读一些偏向 Oracle 的书籍) 博客 - 上面提到的,加上 SSWUG

                                网络研讨会和会议 - 了解供应商特定内容的最佳方式,例如 SSIS/SSRS/SSAS

                                练习:

                                改进代码(我的和其他的)

                                重构

                                指导/培训其他开发人员

                                【讨论】:

                                  【解决方案18】:

                                  老实说,这是随着时间的推移你会变得更好的事情之一。尽可能多地阅读以了解可能发生的事情。有些事情需要一段时间才能真正理解。很长一段时间我都被子查询吓到了,直到我几乎别无选择,只能使用它们。

                                  当您获得更多经验并需要做更复杂的事情时,您就会按照自己的方式学习。

                                  【讨论】:

                                    【解决方案19】:

                                    SqlServerCentral - 文章、脚本、建议的重要来源

                                    很遗憾访问您需要注册的文章(虽然它是免费的)
                                    我想他们可以从 StackOverflow 中学到的一件事是删除 login barrier

                                    【讨论】:

                                      【解决方案20】:

                                      我们已经写了一个full tutorial,您可以在separate site 测试您的SQL 技能(也是由我们创建的,为了完整声明)。

                                      【讨论】:

                                        【解决方案21】:

                                        SQL 开发人员还是 DBA?

                                        除了在日常工作中学习不同的 SQL 方言(Oracle、SQL Server 等)之外,SQL 实际上并没有太大的变化。当然,您可以在开发技能、确定在何处实现存储过程等时引入更高级的概念,但最终它只是 SQL。最重要的是让您的架构正确且可维护。

                                        现在管理数据库是完全不同的事情,需要使用一系列工具,而且数据库软件本身每隔几年就会更新一次。 Oracle 至少有新闻稿、网站和杂志,其中可能包含大量信息、示例和最佳实践方案。

                                        【讨论】:

                                          【解决方案22】:

                                          老实说,我认为不需要极端的 SQL 技能。一旦我可以创建事务(用于数据库一致性)和基本触发器(用于跨表一致性),我通常可以很好地将程序逻辑......保留在程序中,而不是将其放入我正在使用的任何数据库中。我没有发现值得终生研究的 SQL 深度,不像一般编程,它会不断深入。

                                          【讨论】:

                                          • 提高 SQL 技能可以帮助您使排序和过滤更接近数据并远离应用程序。这可以大大提高性能。此外,有时查询不会产生预期的结果,或者太慢。学习为此阅读计划。
                                          • 排序和过滤对我来说似乎是非常基本的 SQL 技能。我同意应该能够修复您的 SQL 以提高效率,但我发现有些人将过多的程序逻辑放入数据库中。
                                          猜你喜欢
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 2017-07-13
                                          • 1970-01-01
                                          • 2010-09-06
                                          • 1970-01-01
                                          • 2014-03-28
                                          • 2017-10-22
                                          • 2021-11-24
                                          相关资源
                                          最近更新 更多