mysql-simple-query
Version:
Simple query wrapper for mysql-promise to make querying, inserting, updating, and deleting easier for developers.
218 lines (171 loc) • 4.13 kB
Markdown
MySQL Simple Query
=======================================
[](https://travis-ci.org/coreyshaw/mysql-simple-query)
Simple mysql query builder to make querying, inserting, updating, and deleting easier for developers. This library can be used with any mysql library.
* * *
This library takes the annoyance out of writing raw MySQL queries in Javascript. The queries are easy to read in your code and easy to build complex queries.
## Install
```bash
npm install --save mysql-simple-query
```
### List of features
* [Querying](#Querying)
* [Inserting](#Inserting)
* [Updating](#Updating)
* [Deleting](#Deleting)
* [Raw Query](#Raw-Query)
### Configuring
All calls need to be have a reference to the mysql-simple-query class.
```js
const mysqlQuery = require("mysql-simple-query");
const db = new mysqlQuery();
```
### Querying
#### Query with basic select from and where
```js
db.select('id, name');
db.from('users');
db.where('name', 'foo');
const results = db.query();
results.then(function(result) {
console.log(result);
});
```
If `Select *` is needed you can leave off the db.select and it will be defaulted.
#### Query with select, from, join, and where
```js
db.select('id, name');
db.join('table', 'abc = def');
db.from('users');
db.where('name', 'foo');
const results = db.query();
results.then(function(result) {
console.log(result);
});
```
The above example will produce an INNER JOIN. There can be multiple db.join and db.where to chain them together.
```js
db.select('id, name');
db.join('table', 'abc = def');
db.join('table2', 'abc = def');
db.from('users');
db.where('id', '123');
db.where('name', 'foo');
const results = db.query();
results.then(function(result) {
console.log(result);
});
````
#### Other querying parameters
```js
db.groupBy('item');
db.orderBy('item', 'ACS');
db.limit(1);
```
### Inserting
```js
/**
* @param {string} table Name of the database table to insert into
* @param {object} data data to insert into the database
* @returns {promise}
*/
const results = db.insert('users_table', {
'name': 'foo bar',
'department': 'engineering',
'datetime': '2019-08-27 03:11:06'
});
results.then(function(result) {
console.log(result);
});
```
### Updating
```js
/**
* @param {string} table Name of the database table to update
* @param {object} data data to update into the database
* @returns {promise}
*/
const results = db.update('users_table', {
'name': 'foo bar',
'department': 'engineering',
'datetime': '2019-08-27 03:11:06'
});
results.then(function(result) {
console.log(result);
});
````
### Deleting
```js
db.where('name', 'foo');
db.delete('users');
````
### Raw Query
If you need to pass in your own custom query into mysql-promise you can do so by calling the following.
```js
const results = db.queryRaw('SELECT * FROM TABLE...');
````
### Component Definitions
#### db.select()
```js
/**
* @param {string} select string Comma seperated list
* @returns {promise}
*/
db.select('id','name','department');
```
#### db.from()
```js
/**
* @param {string} table_name
* @returns {promise}
*/
db.from('users');
```
#### db.where()
These calls can be chained together to form multiple where statements.
```js
/**
* @param {string} key
* @param {string} value
* @returns {promise}
*/
db.where('name','foo');
db.where('deparment','engineering');
```
#### db.join()
This will produce an INNER JOIN. These calls can be chained together to form multiple join statements.
```js
/**
* @param {string} key
* @param {string} value
* @returns {promise}
*/
db.join('table', 'item = item2');
```
#### db.groupBy()
```js
/**
* @param {string} key
* @returns {promise}
*/
db.groupBy('key');
```
#### db.orderBy()
```js
/**
* @param {string} key
* @param {ENUM} order ASC or DESC
* @returns {promise}
*/
db.orderBy('key', 'ASC');
```
#### db.limit()
```js
/**
* @param {int} number to limit by
* @returns {promise}
*/
db.limit(1);
```
### License
This project is licensed under the MIT License