Get started with q and kdb+

Kdb+ is a database. While you can use it through interfaces such as ODBC, its power and performance are best accessed through its own language, q.

Q is a general-purpose programming language. You can write programs for anything in q.

You do not need prior programming experience to learn q. If you have some experience with mathematics, functional programming or SQL, you will find much that is familiar.


Download and install (for your personal, non-commercial use) a free version of kdb+ for Linux, macOS, or Windows.

These are full versions of the product. The 64-bit version (on-demand) requires an always-on Internet connection. (A free, stand-alone 32-bit version is also available.)

Download and install the free IDE, Kx Developer.

Learn q

A brief introduction

First steps

Run your first query.

In-memory queries

Build a more complex dataset in memory and perform some queries and joins on it. The dataset is from an imaginary desktop PC monitoring and helpdesk support system.

On-disk queries

Download a set of scripts to build and run queries against a large on-disk database. The dataset is from an imaginary smart-meter network. It includes a basic HTML5 Business Intelligence tool which queries the database directly.

Introduction to kdb+

Q for Mortals, Chapter 14 by Jeffry A. Borror.

Roughly speaking, kdb+ is what happens when q tables are persisted and then mapped back into memory for operations.


q for Mortals Version 3

Q for Mortals

Version 3 by Jeffry A. Borror, available from or Covers up to kdb+ V3.3. If you are a new kdb+ user, this is the book for you!

HTML edition now online

Q Tips

Q Tips

Fast, scalable and maintainable kdb+ by Nick Psaris, available from

There is information that if you were learning by yourself, would take years to work out.

See the Archive for older documents.

Please send comments on tutorials to