使用 Deno 与 SQLite 进行数据库交互
SQLite 是一个轻量级的嵌入式关系型数据库管理系统。它非常适合用于小型项目或作为学习数据库交互的入门工具。本节将介绍如何使用 Deno 和 SQLite 进行数据库交互。
安装 SQLite3 模块
首先,我们需要安装 deno-sqlite 模块来与 SQLite 数据库进行交互。在 Deno 中,我们可以使用以下命令来安装模块:
deno install -A --unstable https://deno.land/x/sqlite@v3.4.7/mod.ts
这个命令会安装一个名为 sqlite 的模块,该模块提供了一些方便的方法来操作 SQLite 数据库。
创建和连接到 SQLite 数据库
接下来,我们将创建一个新的 SQLite 数据库,并打开它。下面是一个简单的示例代码:
import { open } from "https://deno.land/x/sqlite@v3.4.7/mod.ts";
const db = await open({
filename: "./mydb.sqlite",
driver: SQLite3Driver,
});
console.log("成功连接到数据库");在这个示例中,我们使用了 open 函数来打开一个名为 mydb.sqlite 的数据库文件。如果该文件不存在,则会自动创建。
创建表
在进行数据存储之前,我们需要先创建一个表。以下是创建一个名为 users 的表的示例代码:
// www.javascriptcn.com code example
await db.run(
`CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE
);`
);
console.log("成功创建用户表");在这个示例中,我们使用了 run 方法来执行 SQL 语句。CREATE TABLE 语句用于创建一个新表。我们还使用了 IF NOT EXISTS 关键字来确保只有在表不存在时才创建。
插入数据
现在我们已经创建了一个表,可以向其中插入一些数据。以下是一个示例代码:
await db.run(`INSERT INTO users (name, email) VALUES (?, ?)`, ["Alice", "alice@example.com"]);
await db.run(`INSERT INTO users (name, email) VALUES (?, ?)`, ["Bob", "bob@example.com"]);
console.log("成功插入数据");在这里,我们使用了 run 方法来插入数据。? 是占位符,实际值会在运行时替换它们。
查询数据
接下来,我们将查询刚刚插入的数据。以下是示例代码:
const result = await db.all(`SELECT * FROM users`); console.log(result);
在这个示例中,我们使用了 all 方法来执行查询并获取所有结果。result 将是一个数组,其中每个元素都是一个对象,表示一行数据。
更新数据
如果需要更新已有的数据,可以使用 run 方法。以下是一个示例代码:
await db.run(`UPDATE users SET email = ? WHERE name = ?`, ["alice_new@example.com", "Alice"]);
console.log("成功更新数据");在这个示例中,我们通过 SET 子句更新了 email 字段的值,并通过 WHERE 子句指定了条件。
删除数据
最后,如果我们想删除一条记录,可以使用 run 方法。以下是一个示例代码:
await db.run(`DELETE FROM users WHERE name = ?`, ["Bob"]);
console.log("成功删除数据");在这个示例中,我们通过 WHERE 子句指定了要删除的记录。
关闭数据库连接
完成所有操作后,记得关闭数据库连接:
await db.close();
console.log("成功关闭数据库连接");以上就是在 Deno 中使用 SQLite 进行数据库交互的基本步骤。希望这些示例能帮助你在实际项目中更好地使用 Deno 和 SQLite。