SQL查询艺术(T-SQL)

 

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

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

 

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

 

未完等续 ..

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值