TSL语言基础 > SQL基础到TS-SQL

SQL基础到TS-SQL简介    

  •   SQL的全称为Structured Query Language,亦即结构化查询语言,顾名思义,SQL本身就是一门计算机语言。目前,绝大多数的数据库系统的查询是基于SQL的,SQL语言在数据处理和查询方面具有独特的优势。目前市面上流行的SQL主要有SQLSERVER支持的T-SQL(Transact-SQL)以及Oracle支持的PL/SQL(Procedural Language/SQL),目前绝大多数的SQL都是基于SQL-92规范为蓝本建立起来(SQL-92规范也就是1992年由多家数据库厂商一起建立的一个SQL的规范)。但需要注意的是,SQL有规范但是却没有标准,每一家数据库厂商自己均提供自己的SQL实现,而且都有自己的SQL特性,所以也在很多方面互不兼容,兼容是为了移植,而不兼容处才体现出各自之优越。
      SQL对数据的处理除了查询以外,还支持数据删除,数据更新,数据插入等功能。
    TSL语言内置集成了类SQL语法。为什么说是类SQL语法呢?首先SQL作为一门独立的语言,和TSL语言的语法在相当多的地方有冲突,不可能对SQL语法不做改动就融入TSL语言,其次TSL语言的类SQL语法是在吸收SQL语法的精华的同时,还增加许多自身特色,例如支持时间序列分析,同时支持数据库以及TSL的内存表和天软数据仓库。此外,TSL的SQL语法还支持对按照规范编写的对象进行查询,修改,插入和删除等工作。
      无独有偶,微软的Visual Studio 2008里的C#也引入了类SQL语法,微软称之为LINQ – Language INtegrated Query,亦即语言集成查询。在我们的TSL中,类SQL语法我们称之为TS-SQL(TinySoft SQL)。
      注:与前面所学的相比,可能这个章节所讲述的内容会更易懂并且功能也更强大而且有时候会给人一个误解:SQL无所不能。事实上,由于SQL是一门语言,所以SQL确实也是无所不能的,但是SQL有其局限性,在适合于SQL来实现的时候,无论运算效率还是简洁度而言都无以伦比,但在不适合于SQL来实现的时候,如果强行使用SQL语法来实现,可能既晦涩难懂,运行效率也非常低下。有许多程序员,已经沦为了数据库的奴隶,基本上最熟悉的就是SQL和数据库,在过分依赖SQL的时候,同时也给了自己的思想套上了一把枷锁,脱离了SQL就什么都不会了,所以笔者认为,无论SQL有多么强大,至少也需要知道自己如何去实现SQL实现的功能,可SQL,亦可不。在许多情况下,尤其应该自己尝试实现去替代和超越适合于SQL的功能,不仅仅对于学习大有裨益,在今后的开发道路上,也会更为宽广,我们会尝试在后面做一些类似的尝试。
      此外,SQL主要适合处理的是以行为单位的数据,而矩阵计算等数学运算功能是不适合的,当然利用SQL进行组合亦可以实现许多类似的功能,作为探索,这值得嘉许。在开发的学习过程中,尤其鼓励使用一个不适合的东西去实现一个难以实现的东西,因为这往往可以锻炼人的异向思维能力。
      事实上,TSL语言本身内置了矩阵的计算的功能,在其他章节也会提到,而且矩阵计算事实上是可以以行、列、单元格为单位的,所以矩阵计算的支撑部分甚至于不亚于整套SQL的语法体系。而在面对越来越高级的语法,面对越来越强大的功能的时候,往往一两行可以解决许多问题,读者应冷静去思考其实现的途径,因为这些实现也是通过一行行最简单的代码来完成的。
      SQL语言本身就可以是一门相当复杂的课程,笔者希望可以抛弃掉许多专业的术语尽量简化理解,尝试用TS-SQL一步步带读者进入SQL的大门,并让读者了解到SQL和TS-SQL之间的差异以及TS-SQL和其他SQL相比的过人之处。但由于SQL本身的复杂性,本书的篇幅所限,不能一一展开,因此我们还是推荐对SQL很不熟悉的读者在阅读本章节之后可以再阅读专门的SQL语言相关的书籍。