使用 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。
单击 新建数据库 按钮。
应该会出现一个对话框。转到您创建的项目目录,并将文件保存为 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 数据库进行交互。
我们还了解了如何使用它直接将一些 SQL 写入 SQLite 数据库。这将有助于验证数据库中的数据是否正确,进行调试等。
在接下来的章节中,我们将开始使用 SQLModel 与数据库进行交互,并且我们将继续同时使用 DB Browser for SQLite 来查看底层的数据库。🔍