如何在 Linux 上使用 DB Browser for SQLite
已發表: 2022-01-29DB 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) 格式。 您可以使用數據庫測試數據等數據生成站點來生成用於練習目的的虛擬數據。 然後,您可以將數據導出為 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 日”、“[email protected]”、“愛達荷州”);
單擊藍色箭頭(看起來像播放按鈕)以運行您的 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 語句中呈現的數據庫的整個架構。