跳到内容

使用 SQL 创建表

我们开始吧!

我们将

  • 使用 DB Browser for SQLite 创建一个 SQLite 数据库
  • 使用 DB Browser for SQLite 在数据库中创建一个表

我们稍后会添加数据。现在,我们将创建数据库和第一个表结构。

我们将创建一个表来保存这些数据

idnamesecret_nameage
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)
  1. 创建一个名为 hero 的表。还要注意,此表的列在此处开始的括号“(”内声明。
  2. id 列,一个 INTEGER。这在最后声明为主键。
  3. name 列,一个 TEXT,它应该始终有一个值 NOT NULL
  4. secret_name 列,另一个 TEXT,也是 NOT NULL
  5. age 列,一个 INTEGER。这个没有 NOT NULL,所以它*可以*为 NULL
  6. 所有这些的 PRIMARY KEYid 列。
  7. 这是 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 来查看底层的数据库。🔍