Q Linguaggio di programmazione

Kdb + viene fornito con il suo linguaggio di programmazione integrato noto come q. Incorpora un superset di SQL standard che è esteso per l'analisi di serie temporali e offre molti vantaggi rispetto alla versione standard. Chiunque abbia familiarità con SQL può imparareq in pochi giorni ed essere in grado di scrivere rapidamente le proprie query ad hoc.

Avvio dell'ambiente "q"

Per iniziare a usare kdb +, devi avviare il qsessione. Esistono tre modi per avviare un fileq sessione -

  • Digita semplicemente "c: /q/w32/q.exe" sul tuo terminale di esecuzione.

  • Avvia il terminale di comando MS-DOS e digita q.

  • Copia il file q.exe file su "C: \ Windows \ System32" e sul terminale di esecuzione, basta digitare "q".

Qui supponiamo che tu stia lavorando su una piattaforma Windows.

Tipi di dati

La tabella seguente fornisce un elenco dei tipi di dati supportati:

Nome Esempio Char genere Taglia
booleano 1b b 1 1
byte 0xff X 4 1
corto 23h h 5 2
int 23i io 6 4
lungo 23j j 7 8
vero 2.3e e 8 4
galleggiante 2.3f f 9 8
char "un" c 10 1
varchar `ab S 11 *
mese 2003.03m m 13 4
Data 2015.03.17T18: 01: 40.134 z 15 8
minuto 08:31 u 17 4
secondo 08:31:53 v 18 4
tempo 18: 03: 18.521 t 19 4
enum `u $` b, dove u: `a`b * 20 4

Atomo e formazione di liste

Gli atomi sono entità singole, ad esempio un singolo numero, un carattere o un simbolo. Nella tabella sopra (di diversi tipi di dati), tutti i tipi di dati supportati sono atomi. Un elenco è una sequenza di atomi o altri tipi inclusi gli elenchi.

Il passaggio di un atomo di qualsiasi tipo alla funzione di tipo monadico (ovvero funzione di argomento singolo) restituirà un valore negativo, ovvero –n, mentre il passaggio di un semplice elenco di quegli atomi alla funzione type restituirà un valore positivo n.

Esempio 1 - Atom and List Formation

/ 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