使用 SQL 创建表¶
让我们开始吧!
我们将:
- 使用 DB Browser for SQLite 创建一个 SQLite 数据库
- 使用 DB Browser for SQLite 在数据库中创建一个表
我们稍后会添加数据。现在,我们将创建数据库和第一个表结构。
我们将创建一个表来存储以下数据:
| id | name | secret_name | age |
|---|---|---|---|
| 1 | Deadpond | Dive Wilson | null |
| 2 | Spider-Boy | Pedro Parqueador | null |
| 3 | Rusty-Man | Tommy Sharp | 48 |
创建数据库¶
SQLModel 和 SQLAlchemy 基于 SQL。
它们的设计旨在通过 Python 类和对象帮助你使用 SQL。但理解 SQL 总是非常有用的。
因此,让我们从一个简单的纯 SQL 示例开始。
打开 DB Browser for SQLite。
点击 New Database 按钮。

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

然后,你将看到创建新表的对话框。
现在,创建一个名为 hero 的新表,包含以下列:
id:一个INTEGER类型的字段,将作为 主键(勾选PK✅)。name:一个TEXT类型的字段,应该为NOT NULL(勾选NN✅),所以它应该始终有一个值。secret_name:一个TEXT类型的字段,应该为NOT NULL(勾选NN✅)。age:一个INTEGER类型的字段,可以为NULL,因此你不需要勾选其他任何选项。

点击 OK 创建表。
当你点击 Add 按钮并添加信息时,它会创建并更新执行创建表的 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。- 这个表的主键是
id列。 - 这是 SQL 表的结束部分,最后一个括号 "
)" 和分号 ";" 表示 SQL 语句的结束。这个 SQL 字符串可能还会包含其他 SQL 语句。
现在你将看到它出现在表的列表中,且包含我们指定的列。🎉

剩下的步骤是点击 Write Changes 保存更改到文件。

之后,新表将保存在 ./database.db 文件中。
确认表的创建¶
让我们确认它是否已保存。
首先点击 Close Database 按钮关闭数据库。

然后点击 Open Database 按钮重新打开数据库,选择相同的 ./database.db 文件。

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

使用 SQL 再次创建表¶
现在,为了了解 SQL 是如何工作的,让我们用 SQL 再次创建表。
再次点击 Close Database 按钮。
删除项目目录中的 ./database.db 文件。
然后再次点击 New Database。
再次将文件保存为 database.db。
这一次,如果你看到创建新表的对话框,只需点击 Cancel 按钮关闭它。
现在,切换到 Execute SQL 标签。
写下之前步骤中生成的相同 SQL:
CREATE TABLE "hero" (
"id" INTEGER,
"name" TEXT NOT NULL,
"secret_name" TEXT NOT NULL,
"age" INTEGER,
PRIMARY KEY("id")
);
然后点击 "Execute all" ▶ 按钮。

你将看到 "execution finished successfully" 的提示信息。

如果你回到 Database Structure 标签,你会看到你确实再次创建了相同的表。

进一步学习 SQL¶
在本教程中,我将继续向你展示一些 SQL 的小片段。你不需要成为 SQL 专家就能使用 SQLModel。
但是,如果你感兴趣并希望快速了解 SQL,我推荐你阅读 SQLite 的可视化文档,链接在这里:SQL As Understood By SQLite。
你可以从 CREATE TABLE 开始。
当然,你也可以选择参加完整的 SQL 课程或阅读有关 SQL 的书籍,但你不需要比我在本教程中解释的内容更多,就能开始高效地使用 SQLModel。🤓
小结¶
我们学习了如何使用 DB Browser for SQLite 通过可视化用户界面与 SQLite 数据库文件进行交互。
我们还了解了如何直接向 SQLite 数据库写入 SQL 语句。这在验证数据库数据是否正确、调试等方面非常有用。
在接下来的章节中,我们将开始使用 SQLModel 与数据库交互,并且我们将继续同时使用 DB Browser for SQLite 来查看底层的数据库。🔍