- 安装
sqlite3
模块npm install sqlite3
- 创建数据库
const sqlite3 = require('sqlite3').verbose(); // 创建数据库连接 let db = new sqlite3.Database('database.db', sqlite3.OPEN_READWRITE, (err) => { if (err) { console.error(err.message); return; } console.log('Connected to the database.db database.'); // 创建一个新表 db.run('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)', (err) => { if (err) { console.error(err.message); return; } console.log('Table "users" created.'); }); });
-
插入数据
// 插入数据到 "users" 表 db.run('INSERT INTO users (name, age) VALUES (?, ?)', ['Alice', 30], (err) => { if (err) { console.error(err.message); return; } console.log('User inserted successfully.'); });
-
使用
db.get()
查询数据// 查询特定用户的数据 db.get('SELECT * FROM users WHERE id = ?', [1], (err, row) => { if (err) { console.error(err.message); return; } console.log('User data:', row); });
5. 关闭数据库连接
// 关闭数据库连接
db.close((err) => {
if (err) {
console.error(err.message);
return;
}
console.log('Database connection closed.');
});
各项API
-
db.all():
- 用于执行 SQL 查询并返回所有结果。它接受 SQL 语句和一个回调函数,回调函数的第二个参数是一个数组,包含了所有查询结果的行。
-
db.each():
- 类似于
db.all()
,但它允许你遍历查询结果的每一行。它在每一行上调用回调函数,直到没有更多行。
- 类似于
-
db.prepare():
- 创建一个预编译的 SQL 语句对象,可以用于执行参数化查询。这有助于提高性能并防止 SQL 注入。
-
db.exec():
- 执行 SQL 语句,但不返回查询结果。通常用于执行
INSERT
、UPDATE
、DELETE
或CREATE TABLE
等操作。
- 执行 SQL 语句,但不返回查询结果。通常用于执行
-
db.run():
- 类似于
db.exec()
,但用于执行那些可能返回单个结果的 SQL 语句,如INSERT
后的lastID
。
- 类似于
-
db.close():
- 关闭数据库连接。
-
db.backupDatabase():
- 创建数据库的备份。
-
db.pragma():
- 用于执行
PRAGMA
语句,这些语句用于获取或设置数据库的运行时参数。
- 用于执行
-
db.transaction():
- 开始一个新的数据库事务。
-
db.serialize():
- 在执行一系列数据库操作时,确保它们是顺序执行的。