作为一名程序员,我希望能够有力地编写查询。在我的大学时代,我读了几本sql书籍并休息,我刚刚学会了作为程序员工作了近几年。但是,由于这些查询与工作有关......他们并不是那么“难”或复杂。
你们会建议什么?是否有一本很好的高级sql书可以教授,然后通过提出一些问题来测试知识?
谢谢!
答案 0 :(得分:18)
恕我直言,SQL技能,比任何其他编程技能,都需要指导。
主要有三个原因。
编写一个能为您提供正确答案的SQL语句是非常可能的(通常很容易)。所以开发人员经常最终告诉自己“嘿,它有效,(并且在一个声明中),我已经完成了。”通常情况并非如此,采取下一步措施的唯一有效方法是审核您的工作并获得建议(以及建议的原因)。
技能并不像你预期的那样可以通过“常规”编程转移。分解,子程序等原则通常是盲目的小巷。
真正的SQL技能需要同样多的测试技巧。您只能通过了解内部的SQL查询分析工具来真正评估SQL执行,并且几乎每次查询都会使用它们。
所以你的问题的答案是:尽可能早地和经常地获得尽可能多的帮助。并且不要不愿意问“为什么”。
答案 1 :(得分:3)
我一直认为SQL是你必须要做的事情。我在一个项目中找到了自己,这个项目迫使我写SQL不停几个星期来分析一个相当大的数据库的每个方面。在许多方面,我编写了许多SQL,这些SQL都产生了相同的结果,但却以不同的方式获得它们。使用Sql Server Management Studio的执行路径工具,我能够查看查询选项并改进每个查询选项,并最终选择“最佳”的情况。如果您能找到理由或目的来编写一堆SQL,那将是您真正学习从数据库中挤出数据的最佳催化剂。
答案 2 :(得分:3)
答案 3 :(得分:2)
我发现阅读Ask Tom网站已经帮助我理解了使用高级SQL可以做些什么。这是Oracle特有的,但是很讽刺和可怕!
此外,与您的数据库管理员(如果有的话)交谈,他们有丰富的经验可供您使用。
答案 4 :(得分:0)
我发现最简单的是想知道你是否能找到一种更好或更简单的方式并寻找这种方式(比如在MySQL网站上)或提问(如在SO上)。这两种方式一直是我学习大多数SQL的方法。但这只是在获得基础知识之后。我还发现,数据库变得越复杂,学的越多,即使是通过反复试验也是如此。
答案 5 :(得分:0)
科学方法如何延伸到许多不同的领域令人惊讶。如有疑问,请使用科学方法 提问(我如何擅长sql?)
Do Background Research (Research the topic)
Construct a Hypothesis (If I research and practice a lot of different methods, test them, and ask for advice from peers, then I will be good at sql!)
Test Your Hypothesis by Doing an Experiment (Do it and see if it works!)
Analyze Your Data and Draw a Conclusion
(Did it work, and what happened)
Communicate Your Results
(Tell us how you got good so we can get good too)