淘先锋技术网

首页 1 2 3 4 5 6 7

SQL不是过程化语言,很多人上手的时候都不太适应。实际上SQL是一种逻辑化语言,更接近自然语言,被称为第四代或第五代编程语言。因此,SQL是比较容易上手的。

必要的基础知识

要写好SQL必须熟练掌握关系代数中关系表计算的四大规则三个基本的语句,其他所有的语句都可以由这三条语句衍生出来:

  • 选择计算给定条件从已知关系表中选出数据行组成新的关系表。Select⋯Where语句。这是唯一能减少关系表行数的规则。
  • 投影计算从关系表中选取若干列组成新的关系表。跟上面的语句相同。这是唯一能减少列数的规则。
  • 相交计算两个关系表列合并,数据行按照笛卡尔集组成新的关系表。相当于Join语句。这是唯一能增加列的规则。
  • 合并计算两个列数相同的关系表的数据行合并组成新的关系表。相当于Union语句。这是唯一能增加数据行的规则。

忽略过程关注结果

写出简洁和高效的SQL的窍门是先想好结果,然后再通过对表和字段的筛选,合并组合等手段作出结果。一定不要在意计算过程。只需要考虑表和表之间的对应关系就能编码是SQL的一大特色。

优化检索逻辑

在对SQL文调试的时候,经常需要提高检索效率。很多人喜欢通过调整检索过程使计算次数最少,这个思路通常是有效的,但是,更有效的方法是整理检索逻辑,使它最为简洁和清晰。我在这里就不具体说明了。写SQL的时候,用心体会应该能找到感觉。

SQL是我最喜欢的编程语言,很多算法都可以用数据表的方式实现。受此影响即便是用Java或者是C编码的时候,我也喜欢先把算法转换成数据结构,保存在静态的数组中,然后用检索的方式得到结果。有一次,我把同事写的复杂度很高的几百行代码改成了近万行的数组,代码复杂度降到了10以下,计算速度大幅提升,编码生产性达到了一小时3000行+…

好嗨哦!赶脚人生到达了高潮!