SELECT Examples

Simple Queries

Simple queries can be executed directly on the litdb driver APIs, the different APIs available based on whether the query is expected to return multiple rows, a single row, a single value, a single column, etc.

const id = 1 db.all`SELECT * FROM Contact` // => Contact[] db.one`SELECT * FROM Contact WHERE id = ${id}` // => Contact db.value`SELECT COUNT(*) FROM Contact` // => number db.column`SELECT name FROM Contact` // => string[] db.arrays`SELECT * FROM Contact` // => any[][] db.array`SELECT * FROM Contact WHERE id = ${id}` // => any[]

SELECT Query Builder

$.from(Table) is used to create a SELECT query builder which by default selects all known columns of the data model.

$.from(Contact)

Typed Selects

When a custom select is needed you can use select function to specify the columns to select. All tables and columns using typed references are automatically quoted.

$.from(Contact).select(c => $`${c.id}, ${c.name}, ${c.email}`)

Aliases

A table alias can be specified in $.from(), with the .as() method or by using $.ref() to create a table reference.

db.all($.from(Contact,'c').select(c => $`${c.id}, ${c.name}, ${c.email}`)) db.all($.from(Contact).as('c').select(c => $`${c.id}, ${c.name}, ${c.age}`)) const c = $.ref(Contact,'c') db.all($.from(c).select(c => $`${c.id}, ${c.name}, ${c.createdAt}`))

Select a list of Properties or Columns

The props option can be used to select a list of properties from the data model where any aliases would be used if defined, whilst the columns option can be used to select a list of RDBMS columns from the table.

db.all($.from(Contact).select({ props:['id', 'name', 'age'] })) db.all($.from(Contact).select({ columns:['id', 'name', 'email'] }))