Linguagem de programação Q
Kdb + vem com sua linguagem de programação integrada que é conhecida como q. Ele incorpora um superconjunto de SQL padrão que é estendido para análise de série temporal e oferece muitas vantagens em relação à versão padrão. Qualquer pessoa familiarizada com SQL pode aprenderq em questão de dias e ser capaz de escrever rapidamente suas próprias consultas ad hoc.
Iniciando o Ambiente “q”
Para começar a usar o kdb +, você precisa iniciar o qsessão. Existem três maneiras de iniciar umq sessão -
Basta digitar “c: /q/w32/q.exe” em seu terminal de execução.
Inicie o terminal de comando do MS-DOS e digite q.
Copie o q.exe arquivo em “C: \ Windows \ System32” e no terminal de execução, basta digitar “q”.
Aqui, estamos assumindo que você está trabalhando em uma plataforma Windows.
Tipos de dados
A tabela a seguir fornece uma lista de tipos de dados suportados -
Nome | Exemplo | Caracteres | Tipo | Tamanho |
---|---|---|---|---|
boleano | 1b | b | 1 | 1 |
byte | 0xff | x | 4 | 1 |
baixo | 23h | h | 5 | 2 |
int | 23i | Eu | 6 | 4 |
grandes | 23j | j | 7 | 8 |
real | 2.3e | e | 8 | 4 |
flutuador | 2.3f | f | 9 | 8 |
Caracteres | "uma" | c | 10 | 1 |
varchar | `ab | s | 11 | * |
mês | 2003,03m | m | 13 | 4 |
encontro | 17.03.2015T18: 01: 40.134 | z | 15 | 8 |
minuto | 08:31 | você | 17 | 4 |
segundo | 08:31:53 | v | 18 | 4 |
Tempo | 18: 03: 18.521 | t | 19 | 4 |
enum | `u $` b, onde u: `a`b | * | 20 | 4 |
Formação de átomos e listas
Os átomos são entidades únicas, por exemplo, um único número, um caractere ou um símbolo. Na tabela acima (de diferentes tipos de dados), todos os tipos de dados suportados são átomos. Uma lista é uma sequência de átomos ou outros tipos, incluindo listas.
Passar um átomo de qualquer tipo para a função do tipo monádica (ou seja, função de argumento único) retornará um valor negativo, ou seja, –n, ao passo que passar uma lista simples desses átomos para a função de tipo retornará um valor positivo n.
Exemplo 1 - Formação de átomo e lista
/ 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