my-query-builder
MySQL query builder
For more information and samples please check wiki
Installation
npm install --save my-query-builder
Usage
const myQueryBuilder = require('my-query-builder');
Specify default table name
myQueryBuilder.TABLE('users');
SELECT query
const query = myQueryBuilder
.SELECT()
.from('users')
.get();
const query = myQueryBuilder
.SELECT('name', { email: 'emailAddress' }, { $CONCAT: { name: 'fullName' }, $ARGS: ['$ ', 'family'] })
.from('users')
.get();
const query = myQueryBuilder
.SELECT('ID', 'name')
.from('users')
.where({ status: 'A' }, { name: { $LIKE: 'a' } })
.get();
const query = myQueryBuilder
.SELECT('users.ID', 'users.name', { 'projects.ID': 'projectID' }, { 'projects.name': 'projectName' })
.from('users')
.join({ $INNER: { projects: { userID: 'users.ID' } } })
.get();
const query = myQueryBuilder
.SELECT('name', { $COUNT: { '*': 'count' } })
.from('users')
.group('name')
.get();
const query = myQueryBuilder
.SELECT('ID', 'name', { email: 'emailAddress' })
.from('users')
.having({ ID: { $GTE: 1000 } }, { emailAddress: { $LLIKE: '@gmail.com' } })
.get();
const query = myQueryBuilder
.SELECT('ID', 'name')
.from('users')
.order({ name: '$ASC' }, { ID: '$DESC' })
.get();
const query = myQueryBuilder
.SELECT('ID', 'name')
.from('users')
.skip(100)
.limit(10)
.get();
INSERT query
const user = {
name: 'Ali',
family: 'Amirnezhad',
bday: '1979-06-03',
email: 'webilix@gmail.com',
register: new Date(),
'last-login': null
};
const query = myQueryBuilder
.INSERT(user)
.into('users')
.get();
UPDATE query
const user = {
bio: 'Senior Full Stack Web Developer',
'last-login': new Date()
};
const query = myQueryBuilder
.UPDATE(user)
.table('users')
.where({ ID: 1 })
.unique()
.get();
DELETE query
const query = myQueryBuilder
.DELETE()
.from('users')
.where({ ID: 1 })
.unique()
.get();
Field Values and Functions
Type | INSERT | | WHERE | |
---|
| Sample | Result | Sample | Result |
String | field: 'value' | `field` = 'value' | {field: 'value'} | (`field` = 'value') |
Number | field: 1 | `field` = 1 | {field: 1} | (`field` = 1) |
NULL | field: null | `field` = NULL | {field: null} | ISNULL(field) |
Date | field: new Date() | `field` = '1979-06-03 01:23:45' | {field: new Date()} | (`field` = '1979-06-03 01:23:45') |
Date: $NOW | field: '$NOW' | `field` = '1979-06-03 01:23:45' | {field: '$NOW'} | (`field` = '1979-06-03 01:23:45') |
Date: $DATE | field: {$DATE: new Date()} | `field` = '1979-06-03' | {field: {$DATE: new Date()}} | (`field` = '1979-06-03') |
Date: $TIME | field: {$TIME: new Date()} | `field` = '01:23:45' | {field: {$TIME: new Date()}} | (`field` = '01:23:45') |
Date: $YEAR | field: {$YEAR: new Date()} | `field` = 1979 | {field: {$YEAR: new Date()}} | (`field` = 1979) |
Date: $TIMESTAMP | field: {$TIMESTAMP: new Date()} | `field` = 297221025 | {field: {$TIMESTAMP: new Date()}} | (`field` = 297221025) |
Array | field: [1, 2] | `field` = '{\"0\":1,\"1\":2}' | {field: [1, 2]} | (`field` = '{\"0\":1,\"1\":2}') |
Object | field: {a: 'b',c: 'd'} | `field` = '{\"a\":\"b\",\"c\":\"d\"}' | {field: {a: 'b',c: 'd'}} | (`field` = '{\"a\":\"b\",\"c\":\"d\"}') |
SELECT functions
WHERE / HAVING conditions
- : (equal)
- NOT
- EQ (equal with value function)
- NE (not equal)
- BETWEEN
- IN
- LIKE
- LLIKE (like at the end of string)
- RLIKE (like at the beginning of string)
- LT (less than)
- LTE (less than or equal)
- GT (greater than)
- GTE (greater than or equal)
Tests
git clone https://github.com/webilix/my-query-builder.git
npm install
npm test