SQL查询艺术(T-SQL)

来源:互联网 发布:eb8000软件使用手册 编辑:程序博客网 时间:2024/05/01 07:27

 

                                          SQL查询艺术(T-SQL)

 

引言

 

好久没写技术文章了,准备了许久,终于开始动工了。

       笔者从事SQL Server编程开发7年,技术上算不得很高,在开发上也算得上经验丰富吧。这一套文章总结了笔者多年开发中的集累, 也参考了不少技术书籍和CSDN论坛上众多高人的经验分享。

这不是一系列语法教程,建议有一定基础的朋友参考。这也不是一套大而全的教程,应该说是一系列零散文章以关系逻辑为主线的有机组合。

 

大纲

      

1,    语法

              语法与提醒

              基础释疑

              解题招式

             

2,    关系逻辑

              逻辑基础

              逻辑题小例子

              空间想像

 

3,   XQuery

              XML基础知识

              XQuery

              关系逻辑中的Xquery

 

4,    编程

              结构组织

              性能调优(代码级)

             

5,   综合解题举例

 

 

 

对于逻辑,大多数人都认为所指为业务逻辑。在这里我希望能以我的观点区别一下:

业务逻辑是需求,需求需要做到怎样,我们在编程中流程应该怎么跑。

关系逻辑是比业务逻辑更细小的单位,在满足业务逻辑的基础上写查询时,看你的脑子怎么转。

 

关系逻辑是本套文章整个系列的重点,T-SQL Query一书很好,看了之后我受益非浅,在书的附录里也有很多不错的逻辑题,但我觉得有一个问题,那就是这本书还是比较侧重于从语法层面讲命令的使用,当然也有内部的执行逻辑和调优方面的知识,总觉得缺了些什么,那就是我在这系列里要说的我们写查询时大脑中的关系逻辑,或者说书里也有在讲关系逻辑但没有讲到分析关系逻辑问题的方法。 如果说本套文章是对T-SQL Query的补充,那么我只能笑自己太抬举自己了, 只是希望籍此引发更多朋友的思考,脑,是越用越灵的。当然有大牛专门出关于这方面的书的话,那么我肯定会买的。

 

       诚然,逻辑能力,是需要长时间培养的,靠读几页书想获的很大的提高,显然不实际,本套文章也不列外, 如果看完此套,有一些朋友在写查询时愿意多去考滤逻辑,有了更简洁的,更符要求的查询,那么本套文章的目的也就达到了。

 

       对于为什么还要在第一部分讲语法,我想这个就必多说了,对一些语法特性不了解,不可能写出简洁的,高效的查询,关系逻辑更无从谈起。

 

       第二部分,无疑是本套的重点。本套主要以T-SQL 为主(这里指SQL Server 当然,Sybase也是用T-sql,但语法有差异,特别是内部的执行,差别很大,在需要的地方,我会注明), 对于关系逻辑来说,各种数据库都一样(就像一个算法,用C++, Basic, Java都可以实现一样), 只是换套语法, 在需要的地方,也会给出其它数据库下的写法的参考。

 

       XQuery为什么提出来放在这里?其实如果你不感兴趣的话,这一章也可以略过,实际上,在你的系统中也完全可以不用到它。但有兴趣有精力的话,还是建议看看,至少因为XML越来越流行(尽管可能在你的系统中用处并不大), 也可能因为你的系统中用到了XML类型,这时你就可能无法避开它。同时,对于一些解题,运用它也可能简化你的逻辑或写法。

 

       结构组织,从侧重上来说,也跟T-SQL Program一书一样,只不过不讲那么多,只是说说在组织一段代码时,怎么样可能好些。 至于性能调优涉及面太广,从系统架构,到网络设施,从硬件配置到库结构设计在这里,我们只谈查询怎么写可能获得更好的性能。

在这里特别强调,在这一部分之前,前面几部分都侧重讲关系逻辑,可能需要的是更优秀的逻辑,而不是最好的性能,也即是说,前几部分侧重逻辑,不关注性能。

 

       但愿读完此文,你能和我有一样的感受:关系逻辑如此奇妙

 

未完等续..

原创粉丝点击