An open API service indexing awesome lists of open source software.

https://github.com/MySQL-Database/mysql-database

Easily modify your MySQL database data with easy functions
https://github.com/MySQL-Database/mysql-database

Last synced: 10 months ago
JSON representation

Easily modify your MySQL database data with easy functions

Awesome Lists containing this project

README

          





MySQL-database










NPM version
NPM downloads


# [MySQL Database](https://www.npmjs.com/package/mysql-database)

# Table of contents

- [About](#about)
- [Installation](#installation)
- [Events](#events)
- [Methods](#methods)
- [Contributing](#contributing)

## About

- Easily modify your MySQL database data with easy functions
- Useful for websites & large projects where it makes managing data easier & faster
- Supports the Promise-API, you will be able to use .then, .catch, await, etc...
- & more...

## Installation

``
npm i mysql-database@latest
``

## Documentation

[View Documentation](https://mysql-db.cloud)

#### Events
**[Note]: Events are only emitted if the action is taken from the library, which means if you manage the database from other connection, events would not work**
- connected (connection)
- dataModification (event object)
- tableCreate (table)
- tableDelete (table)
- tableClear (table)
- tableRename (oldName, newName)
```js
const MySQL = require('mysql-database');
const database = new MySQL();

// Create Your Own Connection
run();
async function run(){
let db = await database.connect({ // creates a database connection
host: 'localhost',
port: '3306', // the default is 3306
user: 'root',
password: '',
database: 'my_database',
charset: 'utf8mb4'
});

db.on('connected', async connection => { // database connected event
console.log('Database Connected');
});

db.on('dataModification', async event => { // data changes & modifications event
console.log(event);
/*
{
oldData: 'bar',
newData: 'bar2',
type: 'UPDATE',
table: 'test_table',
modifiedAt: 1653815607288
}
*/
});

db.on('tableCreate', async table => {
console.log(`Table ${table} Created`);
});

db.on('tableDelete', async table => {
console.log(`Table ${table} Deleted`);
});

db.on('tableClear', async table => {
console.log(`Table ${table} Data Cleared`);
});

db.on('tableRename', async (oldName, newName) => {
console.log(`Table renamed from ${oldName} to ${newName}`);
});
}
```
#### Methods
- set (table, key, value)
```js
await db.set('my_table', 'foo', 'bar');
// -> Stores 'bar' in 'foo' key name in the table 'my_table'
```
- get (table, key)
```js
await db.get('my_table', 'foo');
// -> Gets foo key name value (which is bar) in the table 'my_table'
```
- exists (table, key)
```js
await db.exists('my_table', 'foo');
// -> Checks if a specific data exists
```
- base_set (table, key, value)
```js
await db.base_set('my_table', 'foo', 'bar');
// -> Stores 'bar' in 'foo' key name in the table 'my_table' but base encrypted
```
- base_get (table, key)
```js
await db.base_get('my_table', 'foo');
// -> Gets foo key name value (which is bar) in the table 'my_table' for encrypted rows using base_set method
```
- push (table, array, value)
```js
await db.push('my_table', 'fruits', 'banana');
// -> pushs 'banana' to 'fruits' array in 'my_table' table
```
- pull (table, array, value)
```js
await db.pull("my_table", "fruits", "banana");
// -> pulls FIRST 'banana' from 'fruits' in 'my_table'
await db.pull("my_table", "fruits", "banana", "all");
// -> pulls ALL 'banana' from 'fruits' in 'my_table'
```
- includes (table, array, value)
```js
await db.includes("my_table", "fruits", "banana");
// -> Checks if the array includes provided value
```
- add (table, key, number)
```js
await db.add("my_table", "price", 10);
// -> add 10 to price in 'my_table' table
```
- sub (table, key, number)
```js
await db.sub("my_table", "price", 5);
// -> subtracts 5 from price - the remaining is 5 from price in 'my_table' table
```
- all (table)
```js
await db.all("my_table");
// -> retutn all the data in 'my_table' table
```
- delete (table, key)
```js
await db.delete("my_table", "foo");
// -> delete foo key in 'my_table' table
```
- tables ()
```js
await db.tables();
// -> return array of all tables existed in the database
```
- rename (table, new_table_name)
```js
await db.rename("my_table", "new_name");
// -> renames table name
```
- stats (table)
```js
await db.stats("my_table");
// -> return table info
```
- query (query)
```js
await db.query("DROP TABLE my_table;")
// -> executes a SQL query
```
- auto_increment (table, number)
```js
await db.auto_increment("my_table", 5);
// -> sets 'my_table' table auto increment to 5
```
- create (table)
```js
await db.create("table_name");
// -> Create empty table with "table_name" name without inserting any data to it
```
- drop (table)
```js
await db.drop("table_name");
// -> deletes the table 'table_name'
```
- clear (table)
```js
await db.clear("table_name");
// -> clears all 'table_name' table rows & data
```
- variables (variables_object)
```js
await db.variables({
max_connections: 100000,
max_connect_errors: 100000,
wait_timeout: 60
});
// -> modifies any global variable
```
- ping ()
```js
await db.ping();
// -> gets database ping (in ms)
```
- process ()
```js
await db.process();
// -> returns the processes/connections list
```
- create_db (database_name)
```js
await db.create_db("second_db");
// -> creates a separate database on the server

// -> you need to create a new connection manually after creating a new database
const secondDB = new MySQL();
let newDb = await secondDB.connect({
host: 'localhost',
port: '3306',
user: 'root',
password: '',
database: 'second_db',
charset: 'utf8mb4',
});
// note: if you had an old events, you need to re-register the events since this is a new class created
newDb.on('connected', async connection => {
console.log('New Database Connected');
});

// now you can manage your "newDb" connection
await newDb.set("second_db_table", "key", "value");
await newDb.drop("second_db_table");
await newDb.end();
```
- end ()
```js
await db.end();
// -> closes the connection
```

#### Contributing
© mysql-database, 2021 - 2023 | TARIQ (contact@itariq.dev)