Sqorn ·
![PRs Welcome](https://camo.githubusercontent.com/7f745fb7dd2a22f68fe03adcdb977963ada4c8265675e572c629b29b9b34af2b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e737667)
Sqorn is a Javascript library for building SQL queries.
Ergonomic: Sqorn's intuitive API might make you forget you're building SQL.
Composable: Build complex queries from simple parts. Chain, extend, and embed queries.
Boilerplate free: Sqorn provides concise syntax for common CRUD operations.
Fast: 10x faster than Knex.js and 200x faster than Squel
Sqorn requires Node version 8 or above.
npm install --save sqorn
npm install --save pg # only Postgres is currently supported
Then read the tutorial and try the online demo.
CRUD Operations are dead simple.
const sq = require('sqorn')()
const Person = sq`person`, Book = sq`book`
// SELECT
const children = await Person`age < ${13}`
// "select * from person where age < 13"
// DELETE
const [deleted] = await Book.delete({ id: 7 })`title`
// "delete from book where id = 7 returning title"
// INSERT
await Person.insert({ firstName: 'Rob' })
// "insert into person (first_name) values ('Rob')"
// UPDATE
await Person({ id: 23 }).set({ name: 'Rob' })
// "update person where id = 23 set name = 'Rob'"
Build complex queries from simple parts.
// CHAIN QUERIES
sq.from`book`
.return`distinct author`
.where({ genre: 'Fantasy' })
.where({ language: 'French' })
// select distinct author from book
// where language = 'French' and genre = 'Fantsy'
// EXTEND QUERIES
sq.extend(
sq.from`book`,
sq.return`distinct author`,
sq.where({ genre: 'Fantasy' }),
sq.where({ language: 'French' })
)
// select distinct author from book
// where language = 'French' and genre = 'Fantsy'
// EMBED Queries
sq.return`now() today, ${sq.return`now() + '1 day'`} tomorrow`
// select now() today, (select now() + '1 day') tomorrow
Learn more in the tutorial.
MIT Licensed, Copyright (c) 2018 Sufyan Dawoodjee