打开网易新闻 查看精彩图片

DB Browser for SQLite 允许您在 Linux 上查看和编辑 SQLite 数据库。您可以设计、创建和编辑这些数据库文件,并查看其他应用程序的内部工作原理。下面是如何使用这个 SQLite GUI。

SQLite 数据库项目

SQLite 数据库 和工具是一个非常成功的开源结构化查询语言 (SQL) 数据库项目。如此成功,事实上,它可以称自己 为世界上部署最广泛的数据库引擎 。

自 2000 年首次发布以来,SQLite 的使用量绝对惊人。它位于每部 iPhone 和 Android 手机以及 Windows 10 或 Mac 计算机中。它也存在于每个互联网浏览器中,包括 Chrome、Firefox 和 Safari,以及无数其他应用程序

SQLite 数据库的惊人影响力归功于它的架构。它是一个快速、轻量级的库,可以在其他应用程序中合并(或 链接,用开发人员的话来说)。数据库引擎成为产品的一个组成部分。这意味着您不必提供外部 SQL 数据库服务器,例如 MySQL、 MariaDB或 Microsoft SQL Server。

SQLite 也有一个用于操作数据库的命令行工具,但正是这个库让它取得了胜利。将功能强大的、自包含的数据库引擎隐藏在应用程序中可以消除很多问题。它简化了应用程序的安装程序并降低了应用程序的最低硬件要求。

此外,由于 SQLite 对其数据库表、索引和模式使用单个跨平台文件,因此可以将整个数据库移动到另一台计算机上。您甚至可以通过复制一个文件将其移动到运行不同操作系统的机器上。

事实上,SQLite 的数据库文件格式备受推崇,它是美国国会图书馆推荐 用于长期数据存储的少数几种格式之一 。

然而,因为 SQLite 是开发人员的库,所以它没有前端,这意味着它没有图形用户界面。使用提供用户界面的库的应用程序。命令行实用程序可以在交互模式下运行,但它仍然不是 GUI。

DB Browser for SQLite (DB4S) 非常适合。它是由另一个开源项目开发的可视化工具,允许从 GUI 中创建和操作 SQLite 数据库。

SQLite 数据库浏览器

SQLite 的 DB 浏览器自 2003 年以来一直存在(以一种或另一种形式),并且经历了几次名称更改。以前,它被称为 SQLite Browser,但这引起了混乱。人们认为它是由 SQLite 团队编写的,因此将有关 DB4S 的特性请求和支持查询转发到 SQLite。

因此,SQLite Browser 更名为 DB Browser for SQLite。您仍然会在这里和那里看到对旧名称的引用。事实上,该项目的网站仍然使用“sqlitebrowser”作为其域名,并且在安装 DB4S 时也使用了旧名称。

使用 DB4S,您可以:

  • 创建数据库。
  • 以 SQL 格式导入和导出数据库架构、表和数据。
  • 以 CSV 格式导入和导出表格和数据。
  • 创建、编辑和删除表和索引。
  • 添加、编辑和删除记录。
  • 浏览和搜索数据库记录。
  • 编辑和运行 SQL 命令。在将一些 SQL 硬编码到应用程序中之前,您可以确保该命令执行您认为的操作。

为 SQLite 安装数据库浏览器

要在 Ubuntu 上安装 DB4S,请使用以下命令(再次注意,安装仍使用旧名称):

sudo apt-get install sqlitebrowser

在 Fedora 上,您键入:

须藤 dnf 安装 sqlitebrowser

在 Manjaro 上,我们使用:

pacman

sudo pacman -Sy sqlitebrowser

从 SQL 文件导入数据库

当 DB4S 启动时,它没有加载数据库。我们将研究两种可以导入数据和数据库表定义的方法,以及如何创建自己的数据库。

打开网易新闻 查看精彩图片

有时,您可能会收到或发送一个 SQL 格式的数据库转储文件。这包含重新创建数据库并将其数据插入数据库所需的说明。

用于导入表定义和数据的另一种常见格式是逗号分隔值 (CSV) 格式。您可以使用数据生成站点(例如Database Test Data)来生成用于练习目的的虚拟数据。然后,您可以将数据导出为 SQL 或 CSV。

下面是我们在该站点上创建的 SQL 文件。导出后,我们对其进行编辑并在文件顶部添加一行,这是 SQLite 所必需的:

开始交易;

打开网易新闻 查看精彩图片

然后我们保存了文件。在 DB4S 中,我们单击 File > Import > Database from SQL File。

将打开一个文件选择对话框,因此我们可以选择我们的 SQL 文件。在我们的示例中,它被称为“database_dump.sql”,它位于我们主目录的根目录中。

打开网易新闻 查看精彩图片

选择文件后,我们单击“打开”,然后打开文件保存对话框。您现在必须为新数据库命名并决定将其保存在何处。我们将其命名为“geekbase.sqlite3”,并将其保存在我们的主目录中。

打开网易新闻 查看精彩图片

当您准备好继续时,单击“保存”。我们已经确定了我们的源 SQL 文件并命名了我们的新数据库,因此现在可以开始导入过程。完成后,您将看到下面的通知对话框。

打开网易新闻 查看精彩图片

因为我们已将表和数据添加到数据库中,系统会提示我们保存这些更改,因此我们单击“保存”来保存这些更改。

打开网易新闻 查看精彩图片

DB4S 主窗口现在将显示我们数据库的结构。

打开网易新闻 查看精彩图片

尽管 SQL 文件中只有一个定义,但创建了两个表。这是因为“id”字段被定义为自动递增字段。每当将新记录添加到数据库时,它将自动添加。SQLite 创建一个表来跟踪自动递增的字段。

单击“浏览数据”选项卡以查看新添加的记录。

打开网易新闻 查看精彩图片

当然,数据库的强大之处在于它能够搜索和提取记录。对于启用 SQL 的数据库,我们使用 SQL 语言来执行此操作。首先,“执行 SQL”选项卡。

打开网易新闻 查看精彩图片

我们添加了以下 SQL 命令:

SELECT * FROM account_details WHERE last_name LIKE "%ll%" ORDER BY state

这将搜索姓氏中有双“l”的人,结果将按州排序。单击蓝色箭头(它看起来像“播放”按钮)运行您的 SQL 命令。结果显示在下部窗格中。

我们有四个姓氏中包含双“l”的记录,它们按州的字母顺序排列,从亚利桑那州到威斯康星州。

从 CSV 文件导入数据库表

我们还可以从合适的 CSV 文件中导入表格。最方便的方法是将 CSV 文件中的表字段名称作为文本的第一行。以下是 CSV 文件的一小部分。

打开网易新闻 查看精彩图片

第一行包含字段名称:first_name、last_name、created、email、state 和 ID。其他行保存将添加到表中的每条记录的数据值。这是和以前一样的数据;只有文件格式发生了变化。

导入 CSV 数据时,您必须创建一个空数据库,以便将其导入。为此,请单击工具栏中的“新建数据库”。

打开网易新闻 查看精彩图片

文件保存对话框打开。命名您的新数据库并决定将其保存在何处。我们将调用我们的“howtogeek.sqlite3”并将其保存在我们的主目录中。

打开网易新闻 查看精彩图片

出现“编辑表定义”对话框时,单击“取消”。返回 DB4S 主窗口,单击 File > Import > Table From CSV File。将打开一个文件选择对话框,您可以在其中选择 CSV 文件。

打开网易新闻 查看精彩图片

在我们的示例中,它被称为“users.csv”,它位于我们主目录的根目录中。单击“打开”,会出现一个预览对话框,向您展示 DB4S 将如何解释 CSV 数据。

打开网易新闻 查看精彩图片

文件名用作表名。您可以根据需要对其进行编辑,只需确保选中“第一行中的列名”旁边的复选框即可。

单击“确定”(上图中不在屏幕上)。数据已导入,如果一切顺利,您应该会看到“导入完成”对话框;点击“确定”。

打开网易新闻 查看精彩图片

单击“浏览数据”,您将看到导入的数据。

打开网易新闻 查看精彩图片

不过,我们仍然需要进行一些小调整。单击“数据库结构”选项卡,选择表名,然后单击工具栏中的“修改表”。

打开网易新闻 查看精彩图片

在“编辑表定义”对话框中,选中“id”字段中的“AI”(自动递增)复选框。

打开网易新闻 查看精彩图片

“PK”(主键)复选框会自动为您选中;点击“确定”。这会将“id”字段设置为自动递增。我们现在可以向数据库添加一条新记录以验证它是否正常工作。

单击“Execute SQL”选项卡,然后在上部窗格中键入以下 SQL(请注意,我们正在为除“id”之外的所有字段提供值):

插入“用户”
("first_name","last_name","created","email","state")
价值观(“戴夫”、“麦凯”、“2020 年 12 月 8 日”、“dave@llk.com”、“爱达荷州”);

打开网易新闻 查看精彩图片

单击蓝色箭头(看起来像播放按钮)以运行您的 SQL 命令。单击“浏览数据”并滚动到底部。您应该会看到新添加的记录,其中包含一个自动提供的“id”字段,该字段的值比之前的最高“id”值高一个。

打开网易新闻 查看精彩图片

手动创建数据库

如果您没有要导入的 SQL 或 CVS 文件,则必须手动创建数据库。要开始,请单击“新建数据库”,然后会出现一个文件保存对话框。键入新数据库的名称以及要保存它的位置。

我们将其命名为“geeksrock.sqlite3”,并将其保存在“Documents”目录中。命名数据库并导航到要保存的位置后,单击“保存”。

打开网易新闻 查看精彩图片

当要求确认您的选择时,再次单击“保存”。

打开网易新闻 查看精彩图片

出现“编辑表定义”对话框。为您的新表命名(我们称其为“eagles”),然后单击“Add Field”。您现在可以为该字段键入一个名称,然后从“类型”下拉菜单中选择它将包含的信息类型。

打开网易新闻 查看精彩图片

我们添加了一个文本字段来保存老鹰的名字,并添加了一个实数(浮点)数字字段来保存翼展。

打开网易新闻 查看精彩图片

每个字段旁边的复选框和其他选项允许您添加以下行为:

  • NN (Not Null):设置此选项时,该字段不能为空。如果您尝试添加记录而不提供此字段的值,它将被拒绝。
  • PK(主键):为表中的记录提供唯一标识符的字段(或字段组)。这可能是一个简单的数值,就像我们上面介绍的自动递增整数字段一样。但是,在用户账户表中,它可能是用户名。一个表中只能有一个主键。
  • AI(自动递增):数字字段可以自动填写,未使用的值次之。我们在上面介绍的示例中的“id”字段中使用了它。
  • U(唯一):每条记录中的这个字段必须有一个唯一的值,这意味着表中的这个字段不能有任何重复。
  • 默认值:如果添加的记录在此字段中没有值,则将提供默认值。
  • 检查:添加记录时,可以对字段进行检查。例如,您可以检查电话号码字段中的值是否至少包含 10 个字符。
  • 排序规则:Sqlite 可以使用不同的字符串比较方法。默认值为. 其他选项包括不区分大小写的 和忽略尾随空格的选项。在大多数情况下,您可以将其保留为默认值。
  • BINARY
  • NOCASE
  • RTRIM
  • 外键:记录中的一个字段或一组字段,必须与另一个表中的键匹配。例如,在车间工具数据库中,您可能有一个单独的工具表和另一个工具类别表。如果工具类别是“锤子”、“扳手”和“螺丝刀”,则不能添加“凿子”类型的记录。

添加所需字段后单击“确定”。创建数据库并添加第一个表后,您可以添加一些记录。

在“Execute SQL”选项卡中,我们多次使用 SQL INSERT 语句向表中添加一些记录。

打开网易新闻 查看精彩图片

我们还可以使用“浏览数据”选项卡来查看我们的新记录。

打开网易新闻 查看精彩图片

如果您喜欢通过用户界面添加新记录,请单击工具栏上的“新建记录”。然后,您可以在不了解 SQL 的情况下输入新记录的值。

其他应用程序的数据库

您还可以使用 DB4S 查看属于其他应用程序的 SQLite 数据库。检查其他数据库的结构或内容可能是有益的(或只是有趣的)。但是,不要对其他应用程序拥有的数据库进行更改,这一点很重要,否则您可能会对该应用程序的操作产生不利影响。

让我们看一下 Firefox 创建和维护的 SQLite 数据库之一。单击工具栏上的“打开数据库”,将出现一个文件打开对话框。Firefox 将其文件保存在一个名为“firefox”的目录中,该目录位于一个名为“.mozilla”的隐藏目录中,该目录位于您的主目录中。

在我们的测试机器上,我们在这个位置找到了 Firefox SQLite 数据库:“home/dave/.mozilla/firefox/vpvuy438.default-release”;你的将在类似的位置。

打开网易新闻 查看精彩图片

我们将打开“cookies.sqlite”数据库,因此我们突出显示该文件,然后单击“打开”。打开数据库后,您可以检查其表结构、字段定义和数据。

打开网易新闻 查看精彩图片

在这里,我们可以看到各种 Google 和 YouTube cookie。

导出提供见解

导出数据库(通过单击文件 > 导出 > 数据库到 SQL 文件)也很有用。通过查看数据库的 SQL 转储,您可以看到在 SQL 语句中呈现的数据库的整个架构。