使用 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
的表的示例代码:
-- -------------------- ---- ------- ----- ------- ------- ----- -- --- ------ ----- - -- ------- ------- --- -------------- ---- ---- --- ----- ----- ---- --- ---- ------ --- -- -----------------------
在这个示例中,我们使用了 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。