node mysql 插件_node.js mysql插件

.svg?style=flat-square

.svg?style=flat-square

一个MYSQL数据库的常用操作封装,使用连续点操作,实现语义化的数据库操作。

安装

npm i yamlling-node-mysql

使用

基础操作

const mysql = require('yamlling-node-mysql');

const inst = new mysql({

host: '127.0.0.1',

user: 'root',

password: '',

database: 'test-db',

port: 3306,

});

const users = await inst.table('user').where({ status: 1 }).select();

console.log(users);

更多操作方式

见下方[API]

API

Mysql数据库实例,封装了常用操作方式

new Mysql(config)

创建Mysql实例

Param

Type

Description

config

object

数据库连接配置

mysql.query(sql) ⇒ Promise.

直接执行sql语句

Kind: instance method of Mysql

Returns: Promise. - sql执行结果

Param

Type

Description

sql

string

sql语句

mysql.table(tableName) ⇒ Mysql

设置表名

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

tableName

string

表名

mysql.alias(tableAlias) ⇒ Mysql

设置表的别名

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

tableAlias

string

主表别名

mysql.field(fields) ⇒ Mysql

设置需要选取的字段,字符串或数组格式

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

fields

string | Array

需要选取的字段

Example

// SELECT `admins`.`id`, `admins`.`name` FROM `admins` limit 1

mysql.table('admins').field('id, name').find();

// SELECT `admins`.`id`, `admins`.`name` as a, `admins`.`status` as b FROM `admins` limit 1

mysql.table('admins').field(['id', 'name as a', { status: 'b' }]).find();

mysql.group(columns) ⇒ Mysql

group by 操作

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

columns

Array | string

分组列名,可为数组或字符串,字符串以逗号分隔

mysql.where(where) ⇒ Mysql

where条件设置,接受字符串或者对象形式,可以多次调用,每次调用都作为一个整体,多次调用使用 AND 连接

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

where

object | string

where条件

Example

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`status` = 'on') limit 1

mysql.table('admins').where({ status: 'on' }).find();

// SELECT `admins`.`*` FROM `admins` WHERE (id = 10 OR id < 2) limit 1

mysql.table('admins').where('id = 10 OR id < 2').find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` != 1) limit 1

mysql.table('admins').where({id: ['!=', 1]}).find();

// NULL操作

SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` IS NULL) limit 1

mysql.table('admins').where({id: null}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` IS NOT NULL) limit 1

mysql.table('admins').where({id: [ '!=', null ]}).find();

// LIKE 操作

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`name` LIKE '%admin%') limit 1

mysql.table('admins').where({name: [ 'like', '%admin%' ]}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`name` NOT LIKE '%admin%') limit 1

mysql.table('admins').where({name: [ 'notlike', '%admin%' ]}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`name` LIKE '%admin%' OR `admins`.`email` LIKE '%admin%') limit 1

mysql.table('admins').where({'name|email': [ 'like', '%admin%' ]}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`name` LIKE '%admin%' AND `admins`.`email` LIKE '%admin%') limit 1

mysql.table('admins').where({'name&email': [ 'like', '%admin%' ]}).find();

// 一对多操作

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`name` = 'admin' OR `admins`.`name` = 'editor') limit 1

mysql.table('admins').where({name: [ '=', [ 'admin', 'editor' ] ]}).find();

// IN 操作

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` IN (5,10)) limit 1

mysql.table('admins').where({'id': [ 'in', [5, 10] ]}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` IN (5, 10)) limit 1

mysql.table('admins').where({'id': [ 'in', '5, 10' ]}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` NOT IN (5,10)) limit 1

mysql.table('admins').where({'id': [ 'notin', [5, 10] ]}).find();

// BETWEEN 操作

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` BETWEEN 5 AND 10) limit 1

mysql.table('admins').where({'id': [ 'between', [5, 10] ]}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` BETWEEN 5 AND 10 AND `admins`.`name` = 'admin') limit 1

mysql.table('admins').where({'id': [ 'between', [5, 10] ], 'name': 'admin'}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`id` BETWEEN 5 AND 10 OR `admins`.`name` = 'admin') limit 1

mysql.table('admins').where({'id': [ 'between', [5, 10] ], 'name': 'admin', '_logic': 'OR'}).find();

// 多字段操作

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`status` = 'on') AND (`admins`.`id` >= 1 AND `admins`.`id` <= 10) limit 1

mysql.table('admins').where({'status': 'on'}).where({'id': {'>=': 1, '<=': 10}}).find();

// SELECT `admins`.`*` FROM `admins` WHERE (`admins`.`status` = 'on') AND (`admins`.`id` >= 1 OR `admins`.`id` <= 10) limit 1

mysql.table('admins').where({'status': 'on'}).where({'id': {'>=': 1, '<=': 10, '_logic': 'OR'}}).find();

mysql.limit(limit) ⇒ Mysql

设置结果的条数限制

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

limit

number

结果的条数限制

mysql.page(page, pageSize) ⇒ Mysql

分页操作

total 总记录数

list 结果集

pageNum 第几页

pageSize 每页记录数

pages 总页数

size 当前页的数量

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Default

Description

page

number

1

当前页数

pageSize

number

1

每页大小

mysql.data(data) ⇒ Mysql

设置数据

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

data

object

数据

mysql.order(order) ⇒ Mysql

排序

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

order

array | string

排序

Example

// SELECT `article_categorys`.`*` FROM `article_categorys` ORDER BY id desc

mysql.table('article_categorys').order('id desc').select();

//SELECT `article_categorys`.`*` FROM `article_categorys` ORDER BY id desc, name asc

mysql.table('article_categorys').order([ 'id desc', 'name asc' ]).select();

mysql.join(join) ⇒ Mysql

设置join条件,可以多次join

Kind: instance method of Mysql

Returns: Mysql - 实例

Param

Type

Description

join

object

join条件

Example

// SELECT `a`.`*`, `b`.`*` FROM `article_posts` as a LEFT JOIN `article_categorys` AS b ON (a.`category_id`=b.`id`) limit 1

mysql.table('article_posts').alias('a').field([ 'a.*', 'b.*' ]).join({

article_categorys: {

as: 'b',

on: { category_id: 'id' }

}

}).find();

// SELECT `a`.`*`, `article_categorys`.`*` FROM `article_posts` as a LEFT JOIN `article_categorys` ON (a.`category_id`=article_categorys.`id`) limit 1

mysql.table('article_posts').alias('a').field([ 'a.*', 'article_categorys.*' ]).join({

article_categorys: {

// as: 'b',

on: { category_id: 'id' }

}

}).find();

mysql.find(where) ⇒ Promise.

查找一条数据

Kind: instance method of Mysql

Returns: Promise. - 查询结果

Param

Type

Default

Description

where

object | string

where条件

mysql.select(where) ⇒ Promise.

查找数据

Kind: instance method of Mysql

Returns: Promise. - 查询结果

Param

Type

Default

Description

where

object | string

where条件

mysql.update(column, where) ⇒ Promise.

更新操作

Kind: instance method of Mysql

Returns: Promise. - 更新结果

Param

Type

Default

Description

column

object

{name: value} 更新的字段与值

where

object | string

where条件,参见[where]方法

mysql.updateMany(columnList, where) ⇒ Promise.

一次性更新多条数据

Kind: instance method of Mysql

Returns: Promise. - 更新结果

Param

Type

Description

columnList

Array.

[{id: 1, name: value}] 更新的字段与值,必须包含主键

where

object | string

where条件,参见[where]方法

mysql.increase(field, step) ⇒ Promise.

自增操作

Kind: instance method of Mysql

Returns: Promise. - 更新结果

Param

Type

Default

Description

field

string

字段名

step

number

1

自增数,默认1

mysql.decrement(field, step) ⇒ Promise.

自减操作

Kind: instance method of Mysql

Returns: Promise. - 更新结果

Param

Type

Default

Description

field

string

字段名

step

number

1

自减数,默认1

mysql.add(column, duplicate) ⇒ Promise.

新增数据

Kind: instance method of Mysql

Returns: Promise. - 操作结果

Param

Type

Default

Description

column

object

字段键值对

duplicate

object

false

出现重复则更新,{id : 100, name : VALUES('test')}

mysql.addMany(columnList, duplicate) ⇒ Promise.

批量新增数据

Kind: instance method of Mysql

Returns: Promise. - 操作结果

Param

Type

Default

Description

columnList

object

字段键值对数组

duplicate

object

false

出现重复则更新,{id : 100, name : VALUES('test')}

mysql.delete(where) ⇒ Promise.

删除操作,彻底删除一条数据,一般不建议删除数据,可以通过字段开关控制

Kind: instance method of Mysql

Returns: Promise. - 操作结果

Param

Type

Description

where

object | string

where条件,参见[where]方法

mysql._sql() ⇒ string

打印生成的sql语句,用于调试

Kind: instance method of Mysql

Returns: string - 生成的sql语句

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值