1. DB Browser for SQLite 2. 安装 3. 软件界面介绍 3.1 (1区)上方主菜单 3.2 (2区)主菜单下面的工具列 3.3 (3区)主界面左半部 3.4 (4区)主界面右侧上“编辑数据库单元”窗格。 3.5 (5区)主界面右侧下 4. 教学文档 4.1 存储类和数据类型 Storage Classes and Datatypes 4.2 显示格式 Display Formats 4.3 条件格式 Conditional Formats 4.4 编码 Encodings 4.5 正则表达式 Regular Expressions 4.6 项目文件 Project 4.7 绘图 Plot 4.8 使用过滤器 Filters 5. 更多教学页面
1. DB Browser for SQLite
https://sqlitebrowser.org/https://github.com/sqlitebrowser/sqlitebrowser
DB Browser for SQLite (DB4S) 是一种高质量、可视化、开源的工具,用于创建、设计和编辑与 SQLite 兼容的数据库文件。
DB4S 适用于想要创建、搜索和编辑数据库的用户和开发人员。DB4S 使用熟悉的类似电子表格的界面,无需学习复杂的 SQL 命令。用户可以使用控件和向导:
- 创建和压缩数据库文件; 创建、定义、修改和删除表; 创建、定义和删除索引;
- 浏览、编辑、添加和删除记录; 搜索记录;
- 以文本形式导入和导出记录; 从/到 CSV 文件导入和导出表; 从 SQL 转储文件导入和导出数据库;
- 发出 SQL 查询并检查结果; 检查应用程序发出的所有 SQL 命令的日志;
- 根据表或查询数据绘制简单图形
2. 安装
$ sudo pacman -Ss sqlitebrowsercommunity/sqlitebrowser 3.12.1-1 [installed]
安装好后,就可通过开始菜单找到快捷方式,直接打开图形界面使用。
3. 软件界面介绍
DB Browser 的整体布局相当灵活。- 视图菜单下可控制各个模块是否显示;
- 默认的每个区域都可以通过拖拽,改变他们的位置及大小.
下面按照初始的界面布局描述。如下图,划分为5个区域.
3.1 (1区)上方主菜单
- 档案: 新建或打开数据库(.db;.db3;.sqlite;.sqlite3), 打开或保存项目(.sqbpro).
- 编辑: 创建,修改,删除表;创建索引;偏好设置(可以设置界面语言, 应用程序风格等)
- 视图: 这里可以隐藏或打开主界面的各个模块. 默认都是打开的, 可以隐藏你不常用的部分, 让主界面更加清爽...
- 工具:
- Compact Database 压缩资料库(Database schema: main, temp)
- Load Extension 载入扩展
- 下面的工具会打开SQL页签并执行PRAGMA 语句:
Tool 打开SQL页签并执行: 功能 Integrity Check: PRAGMA integrity_check --完整性检查 Quick Integrity Check: PRAGMA quick_check --快速检查 Foreing-Key Check: PRAGMA foreign_key_check --外键检查 Optimize: PRAGMA optimize --优化
3.2 (2区)主菜单下面的工具列
主菜单下面是: 资料库工具列; Extra DB工具列; 项目工具列; (可以在查看菜单下选择部分/全部的显示/隐藏.)3.3 (3区)主界面左半部
顶部有四个选项卡: 数据库结构、浏览数据、编辑编译指示Pragmas和执行SQL。- 数据库结构 Structure: 它告诉您数据库中的表以及每个表中的列。
- 浏览数据: 查看表中的数据,并使用下拉列表在表之间切换.
- 编译指示Edit Pragmas: 处理我们不想更改的系统范围参数。
- 执行 SQL: 实际编写 SQL 查询并运行它们的地方!
3.4 (4区)主界面右侧上“编辑数据库单元”窗格。
3.5 (5区)主界面右侧下
是一个包含 4 个选项卡的窗格(SQL日志,Plot绘图,DB Schema和远程)。4. 教学文档
4.1 存储类和数据类型 Storage Classes and Datatypes
https://www.sqlite.org/datatype3.htmlhttps://www.runoob.com/sqlite/sqlite-data-types.html
存储在 SQLite 数据库中(或由数据库引擎操作)的每个值都具有以下存储类之一:
Sqlite Storage Classes 存储类 |
NULL | 空值 | The value is a NULL value. | |
Sqlitebrowser Datatypes 数据类型 |
Integer | 整型 | 有符号整数. 根据值的大小存储在(1~8 bytes)中。 | |
Text | 文本 | 字符串 | ||
BLOB | 数据 | 该值是一组数据,完全按照输入的方式存储。 | ||
REAL | 浮点 | 存储为 8-byte IEEE 浮点数. 可视为:NUMERIC | ||
Numeric | 数字 | 浮点 |
- SQLite 版本 3 数据库中的任何列(INTEGER PRIMARY KEY 列除外)都可用于存储任何存储类的值。
- SQL 语句中的所有值,无论它们是嵌入在 SQL 语句文本中的文字,还是绑定到预编译 SQL 语句的参数,都有一个隐式存储类。在下述情况下,数据库引擎可能会在查询执行期间在数字存储类(INTEGER 和 REAL)和 TEXT 之间转换值。
4.2 显示格式 Display Formats
https://github.com/sqlitebrowser/sqlitebrowser/wiki/Display-Formats此功能允许用户在显示之前逐列更改“浏览数据”选项卡中的数据。这意味着即使数据以 X 格式存储在数据库中,它也可以在浏览器中以 Y 格式显示。在原始格式 X 难以阅读或在特定情况下没有用的情况下,这应该很有用。
要激活显示格式,您必须右键单击列标题。
- 选择“编辑显示格式”以打开一个对话框,其中提供了一个(有限的)预定义格式列表。
- 从列表中选择所需的显示格式。
- 单击确定,然后将所选格式应用于列的显示。
- 数据不可编辑(或只能通过编辑对话框),因为它尚未转换回来。
- 从 3.12.0 版开始支持显示格式自定义(问题 #573)。
- UI 中没有指示为哪些列设置了格式。
4.3 条件格式 Conditional Formats
https://github.com/sqlitebrowser/sqlitebrowser/wiki/Conditional-Formats此功能允许您在浏览数据选项卡中配置条件格式。有了这个,您可以根据单元格的值设置颜色、字体、字体大小、文本对齐等。它的工作原理与您可能从电子表格应用程序中了解到的非常相似。
每列设置条件格式,并且可以为每列配置多种格式。条件格式可以选择任何可以过滤的内容,例如等于、不等于、小于、大于、LIKE 等。
要设置条件格式,您可以右键单击单元格或右键单击过滤器栏,然后单击“编辑条件格式...”以打开对话框。如果您当前正在过滤视图,您还可以右键单击过滤器栏,然后单击“用于条件格式”,为当前过滤条件快速添加条件格式。
您配置的条件格式也会保存到您的项目文件中。
此外,还有一个新的格式工具栏,允许您在不提供任何条件的情况下任意设置格式。这允许您像在您最喜欢的电子表格应用程序中的表格一样格式化表格内容,例如用于演示或打印。按下此按钮时会显示格式化工具栏:
使用工具栏时,可以应用三种类型的格式,具体取决于按下其中一个按钮之前所做的选择:
默认情况下,DB Browser for SQLite 以 UTF-8 编码(包括 ASCII 作为子集)显示文本。但是您的数据可以存储在其他编码中,例如 ISO-8859-1 或 IBM851。在这种情况下,必须向数据浏览器指示编码,否则单元格内容可能会显示为“BLOB”。这可以通过这种方式完成:
查询的 where 子句中的正则表达式支持是 SQLite 的一个强大功能。
作为语言语法的一部分,它是一个保留字,但它并不是“开箱即用”,因为它需要在运行时挂钩一个函数。
DB Browser for SQLite (DB4S) 使用 Qt 的标准正则表达式引擎提供了这个挂钩函数,Qt 是构建 DB4S 的 GUI 框架。
假设您有一个产品表,那么以下查询将返回描述以“Kg”或“kg”结尾的每个产品。
select * from Products where Description regexp '(kg|Kg)$'
您可以将其扩展到更复杂的可能性,这只是一个简单的例子。如果您收到消息“no such function: regexp”,这意味着您正在使用 3.6 之前的 DB4S 版本,将于 2015 年 4 月发布,或者您已在“首选项”对话框的“扩展”选项卡上选中“禁用正则表达式扩展”。
需要注意的是,使用的正则表达式实现是标准的Qt正则表达式引擎,是“丰富的类似Perl的模式匹配语法”。
与您可能使用过正则表达式的其他上下文不同,不可能通过 SQL 语句或 UI 中的某些复选框传递任何附加标志,用于区分大小写、贪婪等。从 DB Browser for SQLite 3.12 开始,您可以使用以下修饰符语法:(?modifiers)pattern,例如:
SELECT * FROM test WHERE something REGEXP '(?i)el';
允许的修饰符是:
https://www.sqlite.org/lang_expr.html#regexp - Official SQLite documentation
http://en.wikipedia.org/wiki/Regular_expression - Handy reference and introduction
项目文件 (*.sqbpro) 包含“外部”普通数据库文件的设置和选项,例如,“浏览数据”选项卡的过滤选项、“执行 SQL”选项卡中先前打开的 SQL 选项卡和各种 PRAGMA 设置。
通常,当您打开一个数据库(*.db、*.SQLite)文件时,DB4S 会显示“浏览数据”选项卡中的第一个表,重置所有过滤器(因此会显示所有可用记录),重置所有 PRAGMA,然后关闭“执行 SQL”选项卡中的任何 SQL 选项卡。如果您在同一个数据库上重复执行相同的操作,这可能会令人沮丧。相反,您可以使用项目文件来存储这些设置。
- 如果选择涵盖单个单元格(甚至整行),则格式仅应用于这些单元格。
- 如果选择涵盖整列:
- 如果过滤器为空,则该格式适用于该列的所有当前值和未来值(添加带有空条件的条件格式)。
- 如果应用过滤器,则该格式有条件地应用于通过过滤器的当前和未来值(使用过滤器添加条件格式)。
4.4 编码 Encodings
https://github.com/sqlitebrowser/sqlitebrowser/wiki/Encodings默认情况下,DB Browser for SQLite 以 UTF-8 编码(包括 ASCII 作为子集)显示文本。但是您的数据可以存储在其他编码中,例如 ISO-8859-1 或 IBM851。在这种情况下,必须向数据浏览器指示编码,否则单元格内容可能会显示为“BLOB”。这可以通过这种方式完成:
- 单击列标题中的左键并选择“设置编码”或“为所有表设置编码”。
- 在对话窗口中,为数据选择正确的编码,然后单击确定。
- 保存项目以记住此设置。
4.5 正则表达式 Regular Expressions
https://github.com/sqlitebrowser/sqlitebrowser/wiki/Regular-Expressions查询的 where 子句中的正则表达式支持是 SQLite 的一个强大功能。
作为语言语法的一部分,它是一个保留字,但它并不是“开箱即用”,因为它需要在运行时挂钩一个函数。
DB Browser for SQLite (DB4S) 使用 Qt 的标准正则表达式引擎提供了这个挂钩函数,Qt 是构建 DB4S 的 GUI 框架。
假设您有一个产品表,那么以下查询将返回描述以“Kg”或“kg”结尾的每个产品。
select * from Products where Description regexp '(kg|Kg)$'
您可以将其扩展到更复杂的可能性,这只是一个简单的例子。如果您收到消息“no such function: regexp”,这意味着您正在使用 3.6 之前的 DB4S 版本,将于 2015 年 4 月发布,或者您已在“首选项”对话框的“扩展”选项卡上选中“禁用正则表达式扩展”。
需要注意的是,使用的正则表达式实现是标准的Qt正则表达式引擎,是“丰富的类似Perl的模式匹配语法”。
与您可能使用过正则表达式的其他上下文不同,不可能通过 SQL 语句或 UI 中的某些复选框传递任何附加标志,用于区分大小写、贪婪等。从 DB Browser for SQLite 3.12 开始,您可以使用以下修饰符语法:(?modifiers)pattern,例如:
SELECT * FROM test WHERE something REGEXP '(?i)el';
允许的修饰符是:
- i case insensitive 不区分大小写
- m multi-line mode 多行模式
- s . matches \n .匹配\n
- U swap meaning of greediness modifiers 交换贪婪修饰符的含义
https://www.sqlite.org/lang_expr.html#regexp - Official SQLite documentation
http://en.wikipedia.org/wiki/Regular_expression - Handy reference and introduction
4.6 项目文件 Project
https://github.com/sqlitebrowser/sqlitebrowser/wiki/Project-Files项目文件 (*.sqbpro) 包含“外部”普通数据库文件的设置和选项,例如,“浏览数据”选项卡的过滤选项、“执行 SQL”选项卡中先前打开的 SQL 选项卡和各种 PRAGMA 设置。
通常,当您打开一个数据库(*.db、*.SQLite)文件时,DB4S 会显示“浏览数据”选项卡中的第一个表,重置所有过滤器(因此会显示所有可用记录),重置所有 PRAGMA,然后关闭“执行 SQL”选项卡中的任何 SQL 选项卡。如果您在同一个数据库上重复执行相同的操作,这可能会令人沮丧。相反,您可以使用项目文件来存储这些设置。
Saving A Project File
正常打开数据库,设置所需的过滤器,打开 SQL 选项卡以根据需要显示/设置必要的记录。从“文件”菜单中选择“保存项目”。
系统将提示您保存 *.sqbpro 文件。默认文件名将是数据库名称。 (扩展名“.sqbpro”将自动添加后缀。)项目文件会保存设定和格式.
正常打开数据库,设置所需的过滤器,打开 SQL 选项卡以根据需要显示/设置必要的记录。从“文件”菜单中选择“保存项目”。
系统将提示您保存 *.sqbpro 文件。默认文件名将是数据库名称。 (扩展名“.sqbpro”将自动添加后缀。)项目文件会保存设定和格式.
保存在项目文件中的完整设置列表如下(版本3.11):
- 主数据库文件和任何附加的数据库文件。
- 未保存在数据库本身中的 PRAGMA 值。
- 当前选择的选项卡
- “数据库结构”选项卡:列宽和扩展项
- “浏览数据”选项卡:
- 当前浏览的表格
- 对于每个表,以下属性:Show Row Id 选项、编码、Plot Dock 中 X 轴的列、解锁视图主键选项;以及以下列属性列表:
- 对列进行排序和排序方向
- 列宽
- 应用过滤器
- 显示格式
- 隐藏列
- 为 Plot Dock 选择的 Y 轴列
- “执行 SQL”选项卡:编辑器选项卡和当前选择的编辑器选项卡的名称和内容。
4.7 绘图 Plot
https://github.com/sqlitebrowser/sqlitebrowser/wiki/Plot-Dock- Browse Data: 选择要绘图的表;
- Plot: 选择X轴列, Y轴列; Y1, Y2是左右2边的竖轴. 下面还可以选择线类型, 点形状.
您还可以从 SQL 查询生成图形。假设我们想计算每天发表的文章数量。我们可以编写一个简单的“GROUP BY”查询并绘制结果图。
首先,回到之前演示的“执行 SQL”窗口。然后填写您的 SQL 查询,运行它,单击“绘图”,然后为您的轴选择列。您将看到 SQL 查询生成的表的图形版本。
4.8 使用过滤器 Filters
https://github.com/sqlitebrowser/sqlitebrowser/wiki/Using-the-Filters浏览表格时,在表格标题和实际表格数据之间会显示一个过滤行,每列包含一个输入字段。这些字段允许您在当前选定的表中执行快速筛选。开始输入后会立即执行过滤器(您可以在首选项中配置延迟时间)。
- 要准确过滤 'b',请键入 '=b'。键入“%”可以用作通配符。
- 'b%' 过滤器用于以 'b' 开头的记录,
- '%b' 过滤器用于以 'b' 结尾的记录,
- '%b%' 过滤器用于在任何位置包含 'b' 的记录(这是默认的过滤器选项) .
默认情况下,我们对数字执行“包含”过滤器,对文本执行“包含”(不区分大小写)过滤器。您可以在 Pragmas 选项卡(版本 3.11 或更高版本)中更改区分大小写。
您可以通过指定比较运算符来覆盖默认的“包含”搜索。您可以通过在查询的开头添加支持的运算符之一来实现。
有关支持的运算符的完整列表,请参见下表。您还可以仅使用两个或多个输入字段来组合多个过滤器。通过这样做,记录必须满足所有标准才能仍然显示:
没有使用默认的比较运算符。过滤数字和文本时,允许使用通配符 ('%')。支持的运算符有:
没有使用默认的比较运算符。过滤数字和文本时,允许使用通配符 ('%')。支持的运算符有:
Range 范围运算符
注意 - 在 3.10 版本中,范围运算符被添加到 DB4S。
筛选数字时,可以使用 ~ 运算符指定范围运算符,例如,如果筛选 1 到 5,则键入 '1~5':
注意 - 在 3.10 版本中,范围运算符被添加到 DB4S。
筛选数字时,可以使用 ~ 运算符指定范围运算符,例如,如果筛选 1 到 5,则键入 '1~5':
“在过滤器表达式中使用”辅助选项
要快速选择“等于”过滤器,您可以使用辅助鼠标按钮单击任何单元格并选择“用作精确过滤器”选项,以获得该列中值与所选值相同的所有行细胞。然后您可以根据需要修改过滤器。在同一上下文菜单中,您可以使用当前单元格作为运算符的值,通过“在过滤器表达式中使用”子菜单选择所有可用的过滤器。
要快速选择“等于”过滤器,您可以使用辅助鼠标按钮单击任何单元格并选择“用作精确过滤器”选项,以获得该列中值与所选值相同的所有行细胞。然后您可以根据需要修改过滤器。在同一上下文菜单中,您可以使用当前单元格作为运算符的值,通过“在过滤器表达式中使用”子菜单选择所有可用的过滤器。
正则表达式过滤器
您可以使用正则表达式过滤列。您只需要将正则表达式括在 '/' 字符中,例如 /regexp/。例子:
您可以使用正则表达式过滤列。您只需要将正则表达式括在 '/' 字符中,例如 /regexp/。例子:
如果您想使用必须包含 /something/ 的“包含”过滤器,只需使用 \/something\/ 来转义字符 / 并避免正则表达式解释。
在任何列中过滤
最后,有一个新字段:'Filter in any column'。在此处输入任意数量的单词以将视图限制为仅包含所有这些单词的行,无论在哪一列。在不知道它可能在哪一列的情况下在表中查找某个值时,这非常有用。
最后,有一个新字段:'Filter in any column'。在此处输入任意数量的单词以将视图限制为仅包含所有这些单词的行,无论在哪一列。在不知道它可能在哪一列的情况下在表中查找某个值时,这非常有用。
对于那些熟悉 SQL 语法的人来说,过滤器很容易理解。 过滤器被翻译成 SELECT 语句的 WHERE 部分,由 AND 运算符连接。 默认的比较运算符是 LIKE,但可以按照上表所述进行覆盖。 在这种情况下,我们会自动检测数字搜索并忽略过滤器术语周围的引号字符,而在过滤文本时添加它们。 单引号字符会自动转义,因此可以安全地用于过滤查询。 如果有任何疑问,您可能想使用 SQL 日志面板检查生成的 SQL 语句 - 只需确保将其设置为显示由“应用程序”提交的 SQL。
https://github.com/sqlitebrowser/sqlitebrowser/wiki
https://github.com/sqlitebrowser/sqlitebrowser/issues?q=is%3Aclosed+is%3Aissue+label%3Aquestion
https://towardsdatascience.com/an-easy-way-to-get-started-with-databases-on-your-own-computer-46f01709561
https://www.boxplotanalytics.com/using-db-browser-for-sqlite/
https://datacarpentry.org/sql-socialsci/02-db-browser/index.html
https://insights.stackoverflow.com/survey/2020#most-popular-technologies
202002, 近 65000 名开发人员告诉我们他们如何学习和升级、他们正在使用哪些工具以及他们想要什么。
5. 更多教学页面
https://www.runoob.com/sqlite/sqlite-tutorial.htmlhttps://github.com/sqlitebrowser/sqlitebrowser/wiki
https://github.com/sqlitebrowser/sqlitebrowser/issues?q=is%3Aclosed+is%3Aissue+label%3Aquestion
https://towardsdatascience.com/an-easy-way-to-get-started-with-databases-on-your-own-computer-46f01709561
https://www.boxplotanalytics.com/using-db-browser-for-sqlite/
https://datacarpentry.org/sql-socialsci/02-db-browser/index.html
https://insights.stackoverflow.com/survey/2020#most-popular-technologies
202002, 近 65000 名开发人员告诉我们他们如何学习和升级、他们正在使用哪些工具以及他们想要什么。
sztom
osoft@qq.com
CC-BY-NC-SA