{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

学习sql语言,应该如何快速提升自己写语句的能力?

calxcalx 回答0 收藏1
收藏问题

2条回答

leonardofed

leonardofed

回答于2022-06-28 14:19

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

必要的基础知识

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

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

忽略过程关注结果

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

优化检索逻辑

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

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

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

评论0 赞同0
  •  加载中...
yangrd

yangrd

回答于2022-06-28 14:19

找相关的视频看,看别人写的文章。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<