使用 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 来查看底层的数据库。🔍