使用 SQL 创建表¶
我们开始吧!
我们将
- 使用 DB Browser for SQLite 创建一个 SQLite 数据库
- 使用 DB Browser for SQLite 在数据库中创建一个表
我们稍后会添加数据。现在,我们将创建数据库和第一个表结构。
我们将创建一个表来保存这些数据
| id | name | secret_name | age |
|---|---|---|---|
| 1 | 死侍 | 戴夫·威尔逊 | 空 |
| 2 | 蜘蛛男孩 | 佩德罗·帕尔克多 | 空 |
| 3 | 锈人 | 汤米·夏普 | 48 |
创建数据库¶
SQLModel 和 SQLAlchemy 基于 SQL。
它们旨在通过 Python 类和对象帮助您使用 SQL。但理解 SQL 仍然非常有用。
所以我们从一个简单的纯 SQL 示例开始。
打开 DB Browser for SQLite。
点击 新建数据库 按钮。

应该会弹出一个对话框。转到您创建的项目目录,并将文件保存为 database.db。
提示
通常将 SQLite 数据库文件保存为 .db 扩展名。有时也使用 .sqlite。
创建表¶
完成此操作后,它可能会立即提示您创建新表。
如果没有,请点击 创建表 按钮。

然后您将看到创建新表的对话框。
所以,我们来创建一个名为 hero 的新表,包含以下列:
id: 一个INTEGER,将作为主键(勾选PK✅)。name: 一个TEXT,它应该是NOT NULL(勾选NN✅),所以它应该始终有一个值。secret_name: 一个TEXT,它也应该是NOT NULL(勾选NN✅)。age: 一个INTEGER,这个可以为NULL,所以您无需勾选其他任何内容。

点击 确定 创建表。
当您点击 添加 按钮并添加信息时,它将创建并更新用于创建表的 SQL 语句
CREATE TABLE "hero" ( --(1)
"id" INTEGER, --(2)
"name" TEXT NOT NULL, --(3)
"secret_name" TEXT NOT NULL, --(4)
"age" INTEGER, --(5)
PRIMARY KEY("id") --(6)
); --(7)
- 创建一个名为
hero的表。还要注意,此表的列在此处开始的括号“(”内声明。 id列,一个INTEGER。这在最后声明为主键。name列,一个TEXT,它应该始终有一个值NOT NULL。secret_name列,另一个TEXT,也是NOT NULL。age列,一个INTEGER。这个没有NOT NULL,所以它*可以*为NULL。- 所有这些的
PRIMARY KEY是id列。 - 这是 SQL 表的结尾,带有最终括号“
)”。它还有一个分号“;”,表示 SQL 语句的结尾。同一个 SQL 字符串中可以有更多的 SQL 语句。
现在您将看到它显示在表的列表中,包含我们指定的列。🎉

最后一步是点击 写入更改 以将更改保存到文件。

之后,新表将保存在文件 ./database.db 中的此数据库中。
确认表¶
让我们确认所有都已保存。
首先点击 关闭数据库 按钮以关闭数据库。

现在点击 打开数据库 再次打开数据库,并选择相同的文件 ./database.db。

您将再次看到我们创建的相同表。

再次使用 SQL 创建表¶
现在,为了了解 SQL 是如何工作的,让我们再次创建表,但使用 SQL。
再次点击 关闭数据库 按钮。
并删除您项目目录中的 ./database.db 文件。
并再次点击 新建数据库。
再次将文件保存为 database.db。
这次,如果您看到创建新表的对话框,只需点击 取消 按钮关闭它。
现在,转到 执行 SQL 选项卡。
写入上一步中生成的相同 SQL
CREATE TABLE "hero" (
"id" INTEGER,
"name" TEXT NOT NULL,
"secret_name" TEXT NOT NULL,
"age" INTEGER,
PRIMARY KEY("id")
);
然后点击“全部执行” ▶ 按钮。

您将看到“执行成功完成”消息。

如果您回到 数据库结构 选项卡,您将看到您确实再次创建了相同的表。

学习更多 SQL¶
我将在这个教程中不断向您展示一些 SQL 片段。您无需成为 SQL 专家即可使用 SQLModel。
但是如果您好奇并想快速了解 SQL,我推荐 SQLite 的可视化文档,关于 SQLite 所理解的 SQL。
您可以从 CREATE TABLE 开始。
当然,您也可以去参加完整的 SQL 课程或阅读有关 SQL 的书籍,但您不需要比我在此教程中解释的更多内容即可开始高效使用 SQLModel。🤓
回顾¶
我们了解了如何使用 DB Browser for SQLite 在可视化用户界面中与文件中的 SQLite 数据库进行交互。
我们还了解了如何使用它直接向 SQLite 数据库写入一些 SQL。这对于验证数据库中的数据是否正确、调试等非常有用。
在接下来的章节中,我们将开始使用 SQLModel 与数据库进行交互,同时我们将继续使用 DB Browser for SQLite 来查看底层的数据库。🔍