Q 编程语言


Kdb+ 附带其内置编程语言q。它包含标准 SQL 的超集,该超集针对时间序列分析进行了扩展,并比标准版本提供了许多优势。任何熟悉 SQL 的人都可以在几天内学会q并能够快速编写自己的即席查询。

启动“q”环境

要开始使用 kdb+,您需要启动q会话。有三种方法可以启动q会话 -

  • 只需在运行终端上输入“c:/q/w32/q.exe”即可。

  • 启动 MS-DOS 命令终端并输入q

  • 将q.exe文件复制到“C:\Windows\System32”,然后在运行终端上键入“q”。

这里我们假设您正在 Windows 平台上工作。

数据类型

下表提供了支持的数据类型的列表 -

姓名 例子 查尔 类型 尺寸
布尔值 1b 1 1
字节 0xff X 4 1
短的 23小时 H 5 2
整数 23i 6 4
长的 23j j 7 8
真实的 2.3e e 8 4
漂浮 2.3f F 9 8
字符 “A” C 10 1
varchar `ab s 11 *
2003.03m 13 4
日期 2015.03.17T18:01:40.134 z 15 8
分钟 08:31 17 号 4
第二 08:31:53 v 18 4
时间 18:03:18.521 t 19 4
枚举 `u$`b,其中 u:`a`b * 20 4

Atomics和列表形成

Atomics是单个实体,例如单个数字、字符或符号。在上表(不同数据类型)中,所有支持的数据类型都是Atomics。列表是Atomics序列或包括列表的其他类型。

将任何类型的Atomics传递给单子(即单参数函数)类型函数将返回负值,即–n,而将这些Atomics的简单列表传递给类型函数将返回正值n

示例 1 – Atomics和列表形成

/ Note that the comments begin with a slash “ / ” and cause the parser
/ to ignore everything up to the end of the line.

x: `mohan              / `mohan is a symbol, assigned to a variable x
type x                 / let’s check the type of x
-11h                   / -ve sign, because it’s single element.

y: (`abc;`bca;`cab)    / list of three symbols, y is the variable name.

type y
11h                    / +ve sign, as it contain list of atoms (symbol).

y1: (`abc`bca`cab)     / another way of writing y, please note NO semicolon

y2: (`$”symbols may have interior blanks”)   / string to symbol conversion
y[0]                   / return `abc
y 0                    / same as y[0], also returns `abc
y 0 2                  / returns `abc`cab, same as does y[0 2]

z: (`abc; 10 20 30; (`a`b); 9.9 8.8 7.7)      / List of different types,
z 2 0                  / returns (`a`b; `abc),
z[2;0]                 / return `a. first element of z[2]

x: “Hello World!”      / list of character, a string
x 4 0                  / returns “oH” i.e. 4th and 0th(first)
element