@stormzx/sqlbuilder
Version:
A simple sql builder.
63 lines (47 loc) • 1.41 kB
Markdown
## a simple sql builder for mysql.
### Todo
- [x] select
- [x] insert
- [x] update
- [ ] delete
### Raw:
1. raw = raw
2. string = raw#string
3. table = raw#table
4. column = raw#column
5. expression = raw#expression
6. orderBy = raw#order
### api:
1. table(tablename:string, as?:string)
``` javascript
import { table } from '@stormzx/sqlbuilder'
let u = table('users', 'u')
let transform = `
# use like object
u => ${u}
u.id => ${u.id}
u.userId => ${u.userId}
u.userId.as('uid') => ${u.userId.as('uid')}
# use like function
u('id', 'userId') = [u.id, u.userId] => ${u('id', 'userId')}
u('id', ['userId', 'uid']) = [u.id, u.userId.as('uid')] => ${u('id', ['userId', 'uid'])}
`
console.log(transform)
// Output:
// # use like object
// u => `users` as `u`
// u.id => `u`.`id`
// u.userId => `u`.`user_id`
// u.userId.as('uid') => `u`.`user_id` as `uid`
// # use like function
// u('id', 'userId') = [u.id, u.userId] => `u`.`id`,`u`.`user_id`
// u('id', ['userId', 'uid']) = [u.id, u.userId.as('uid')] => `u`.`id`,`u`.`0` as `uid`
```
2. raw(rawSql: string)
3. escape(value: any)
4. escapeId(column: string)
5. SQLBuilder
``` javascript
import {SQLBuilder, table} from '@stormzx/sqlbuilder'
let u = table('users', 'u')
```