2024年5月30日发(作者:苏炎)
Q 语言初学者系列:(1)开门篇
h/trac/wiki/QforMortals2/contents
用户名跟密码为anonymous
历史背景:
Q语言跟它的数据库kdb+是由同个作者Arthur Whitney开发的,发布于 2003年。Q语言天生
地具体处理大数理量的能力,同时它也是kdb+数据库的查询语言,类似于SQL。
KDB+介绍:
KDB+ 是一种适合用于处理大数量的数据库服务器,和kdb一样被设计于用来高速地抓取、分析和
存储数据。主要应用于金融软件的开发,区别于传统的关系型数据库,主要优势是挖掘快速发展的硬件的
潜力,我想缺点是对硬件性能要求比较苛刻。
刚刚接触KDB+数据库,google了半天没找到一丁点中文资料,加上英文太菜,或许对它的理解有
误,不过暂时先这样定义,等有了更好的答案了再来Update.
打开地址 /developers/,然后选择点击"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 语言初学者系列:(2)基本数据类型
Q语言跟C#、JAVA还有SQL基本数据类型的比较
Q
boolean
byte
short
int
long
real
float
char
symbol
date
SQL Java C#
boolean Boolean Boolean
byte Byte Byte
Int16 smallint Short
int Integer Int32
Int64
Single
Double
bigint Long
real
float
Float
Double
char(1) Character Char
varchar (String) (String)
date Date
2024年5月30日发(作者:苏炎)
Q 语言初学者系列:(1)开门篇
h/trac/wiki/QforMortals2/contents
用户名跟密码为anonymous
历史背景:
Q语言跟它的数据库kdb+是由同个作者Arthur Whitney开发的,发布于 2003年。Q语言天生
地具体处理大数理量的能力,同时它也是kdb+数据库的查询语言,类似于SQL。
KDB+介绍:
KDB+ 是一种适合用于处理大数量的数据库服务器,和kdb一样被设计于用来高速地抓取、分析和
存储数据。主要应用于金融软件的开发,区别于传统的关系型数据库,主要优势是挖掘快速发展的硬件的
潜力,我想缺点是对硬件性能要求比较苛刻。
刚刚接触KDB+数据库,google了半天没找到一丁点中文资料,加上英文太菜,或许对它的理解有
误,不过暂时先这样定义,等有了更好的答案了再来Update.
打开地址 /developers/,然后选择点击"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 语言初学者系列:(2)基本数据类型
Q语言跟C#、JAVA还有SQL基本数据类型的比较
Q
boolean
byte
short
int
long
real
float
char
symbol
date
SQL Java C#
boolean Boolean Boolean
byte Byte Byte
Int16 smallint Short
int Integer Int32
Int64
Single
Double
bigint Long
real
float
Float
Double
char(1) Character Char
varchar (String) (String)
date Date