sqlite:小巧轻型的文件数据库,无需安装,无需管理配置,无服务器,占用资源非常的低,操作简单,使用方便。
全局安装【npm install sqlite3 -g】
API使用介绍:
API |
||
Database |
new sqlite3.Database(filename,[mode],[callback]) |
|
verbose |
sqlite3.verbose() |
|
close
|
Database#close([callback]) |
|
all |
返回所有查询到的语句。 运行指定参数的sql语句,完成过后调用回调函数。如果执行成功,则回调函数中的第一个参数为null,第二个参数为查询的结果集,反之,则只有一个参数,且参数的值为一个错误的对象。 |
|
each |
逐条返回所有查询到的语句。 |
|
get |
运行指定参数的sql语句,完成过后调用回调函数。如果执行成功,则回调函数中的第一个参数为null,第二个参数为结果集中的第一行数据,反之则回调函数中只有一个参数,只参数为一个错误的对象。 |
|
prepare |
预执行绑定指定参数的sql语句,返回一个Statement对象,如果执行成功,则回调函数的第一个参数为null,反之为一个错误的对象。 |
|
run |
运行指定参数的sql语句,完成之后调用回调函数,它不返回任何数据,在回调函数里面有一个参数,sql语句执行成功,则参数的值为null,反之为一个错误的对象,它返回的是数据库的操作对象。在这个回调函数里面当中的this,里面包含有lastId(插入的ID)和change(操作影响的行数,如果执行sql语句失败,则change的值永远为0)。 |
增删查改操作:
(1)数据查询
数据表如下:
// const express = require("express")
const sqlite3 = require("sqlite3").verbose()
// const app = express()
// sqlites数据库地址
let sqliteDbPath = "C:\\Users\\lenovo\\Desktop\\Demo.db"
// 打开sqlites数据库
var db = new sqlite3.Database(sqliteDbPath)
// all查询所有数据
db.all(`select * from user`, function(err, row) {
if (err) throw err
else {
console.log('all查询结果', row)
// console.log(JSON.stringify(row));
}
})
// each逐条查询数据
db.each("select * from user", function(err, row) {
if (err) throw err
else {
console.log('each查询结果:', row)
}
})
// 按条件查询
db.each("select * from user where username=?", 'miao', function(err, row) {
if (err) throw err
else {
//console.log(row)
}
})
查询结果:all和each均可查询到表中的所有数据,但是all方法是执行一次完成所有数据的查询,而each方法是逐条输出数据,对于每个检索到的行,该方法都会调用一次回调。执行顺序与结果集中的行顺序完全对应。
(2)数据增加
// 增加一条数据
var sql_add = db.prepare(`insert into user (username, password, email) values('buding', '1111', '221@sdsd.com')`)
sql_add.run()
console.log(sql_add)
(3)数据删除
// 删除数据
var sql_del = db.prepare(`delete from user where username='buding'`)
sql_del.run()
(4)数据修改
// 修改一条数据
var sql_modify = db.prepare(`update user set username='buding' where id=1`)
sql_modify.run()