Q 语言初学者系列:(1)开门篇

      声明:本系列文章全部参考自官方教程,由于缺乏中文资料而且本人E文实在太菜,对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程,
欢迎大家一起学习讨论。
hhttps://code.kx.com/trac/wiki/QforMortals2/contents
用户名跟密码为anonymous



历史背景:
Q语言跟它的数据库kdb+是由同个作者Arthur Whitney开发的,发布于 2003年。Q语言天生地具体处理大数理量的能力,同时它也是kdb+数据库的查询语言,类似于SQL。

KDB+介绍:
KDB+ 是一种适合用于处理大数量的数据库服务器,和kdb一样被设计于用来高速地抓取、分析和存储数据。主要应用于金融软件的开发,区别于传统的关系型数据库,主要优势是挖掘快速发展的硬件的潜力,我想缺点是对硬件性能要求比较苛刻。
刚刚接触KDB+数据库,google了半天没找到一丁点中文资料,加上英文太菜,或许对它的理解有误,不过暂时先这样定义,等有了更好的答案了再来Update.
打开地址 http://www.kx.com/developers/software.php, 然后选择点击"Personal Developer kdb+ Software License Agreement"获取一个免费的32位版本,才100多K的东西。

特点:
◇内存数据库(In Memory Database)
         把数据全部放置于内存中,好在现在内存是越来越白菜价了。
◇解释型语言(Interpreted)
◇有序列表(Ordered Lists)
         实现高速处理数据的关键,区别于传统数据库。
◇赋值顺序(Evaluation Order)
◇面向表编程(Table Oriented) 
         放弃了经典的OO,取而代之的是一种更加复杂的思想,基于表得字典的编程。
◇面向列编程(Column Oriented)
◇强类型(Types): 
      强类型,动态检测    (Q is a strongly typed, dynamically checked language)
◇空值(Null Values):
      每种类型都有自己的空值 (Types have separate null values. )
   

开始:
安装Kdb+ 数据库服务器,直接解压到C盘根目录下就OK了,如果希望放到其它目录下需要添加环境变量QHOME到q目录;
进入到程序目录通过"q"命令启动一个q会话。



变量:
Q语言声明变量只需要使用一个变量名跟一个值,格式为“变量名:值”,解释器会根据值的类型给变量赋予相应的类型,需要注意的是赋值符号是":"而不像大多数语言所使用的"=".
e.g.q)a:20

变量的命名规范基本与匈牙利命名规范差不多,但有一点需要注意的是禁止使用下划线,就算是非使用不可的情况下也不应该把下划线放在最后一个字符

可能使用一个斜杆(/)给程序添加注释,当然使用两杆(//)也是不会报错的
程序的执行顺序是从右到左
e.g. q)b:1+a:42
q)b
43

今天的开门篇就介绍到这里,由于文中一些概念还没完全理解清楚,有很多表达不到位的地方经过后期的学习我会尽量补上。
下一节将介绍Q语言的基本数据类型。


原文地址:https://www.cnblogs.com/yyw84/p/1237803.html