LinuxでDB Browser for SQLiteを使用する方法
DB Browser for SQLite は、Linux 上で SQLite データベースを表示および編集することができます。これらのデータベースファイルを設計、作成、編集し、他のアプリケーションの内部動作を覗くことができます。以下は、この SQLite GUI の使用方法です。
SQLiteデータベースプロジェクト
SQLiteデータベースライブラリとツールは、非常に成功したオープンソースの構造化クエリ言語(SQL)データベースプロジェクトです。それほど成功しているため、世界で最も広く展開されているデータベースエンジンと自負することができます。
2000年に最初にリリースされて以来、SQLiteは驚異的な普及を遂げています。すべてのiPhoneやAndroidフォン、Windows 10やMacコンピュータの中に入っています。また、Chrome、Firefox、Safariなどのすべてのインターネットブラウザや、無数の他のアプリケーションにも含まれています。
SQLiteデータベースの信じられないほどの普及は、そのアーキテクチャに起因しています。これは、他のアプリケーションに組み込まれた(または開発者用語でリンクされた)高速で軽量なライブラリです。データベースエンジンは製品の不可欠な部分となります。これは、MySQL、MariaDB、またはMicrosoft SQL Serverのような外部のSQLデータベースサーバーを提供する必要がないことを意味します。
SQLiteにはデータベースを操作するためのコマンドラインツールもありますが、それを成功に導いたのはライブラリです。アプリケーション内に優れた独立したデータベースエンジンがあることで、多くの問題が解消されます。これにより、アプリケーションのインストール手順が簡素化され、アプリケーションの最小ハードウェア要件が低くなります。
さらに、SQLiteはデータベーステーブル、インデックス、スキーマのために単一のクロスプラットフォームファイルを使用するため、データベース全体を別のコンピュータに移動することができます。ファイルをコピーするだけで、異なるオペレーティングシステムを実行しているマシンに移動することさえできます。
実際、SQLiteのデータベースファイル形式は非常に評価されており、長期的なデータストレージのためにアメリカ合衆国議会図書館から推奨された数少ないものの一つです。
SQLiteは開発者のライブラリですが、フロントエンドがないため、グラフィカルユーザーインタフェース(GUI)はありません。このライブラリを使用しているアプリケーションがユーザーインタフェースを提供します。コマンドラインユーティリティはインタラクティブモードで実行できますが、それでもGUIではありません。
DB Browser for SQLite (DB4S) は、この要求にぴったりです。これは、GUI内でSQLiteデータベースの作成と操作を可能にするために、別のオープンソースプロジェクトによって開発された視覚的ツールです。
SQLite用のDBブラウザ
DBブラウザ for SQLite は2003年から(何らかの形で)存在しており、いくつかの名称変更を経てきました。以前はSQLiteブラウザと呼ばれていましたが、それが混乱を招く原因となりました。人々はそれがSQLiteチームによって書かれたものだと思い込み、DB4Sに関する機能リクエストやサポートの問い合わせをSQLiteに転送していました。
つまり、SQLite BrowserはDB Browser for SQLiteに改名されました。古い名前に関する言及は今でもあちこちで見かけるでしょう。実際、プロジェクトのウェブサイトはまだ「sqlitebrowser」というドメインを使用しており、DB4Sのインストール中にも古い名前が使われています。
DB4Sを使えば、あなたは:
- データベースを作成します。
- SQL形式でデータベーススキーマ、テーブル、およびデータをインポートおよびエクスポートします。
- CSV形式でテーブルとデータをインポートおよびエクスポートします。
- テーブルとインデックスを作成、編集、削除します。
- レコードの追加、編集、および削除。
- データベース記録を検索して閲覧する。
- SQLコマンドを編集して実行します。アプリケーションにSQLをハードコードする前に、コマンドが意図した通りに動作するか確認できます。
SQLite用のDBブラウザをインストールする
UbuntuにDB4Sをインストールするには、以下のコマンドを使用します(再度、インストールにはまだ旧名が使用されていることに注意してください):
sudo apt-get install sqlitebrowser
Fedoraでは、次のように入力します:
sudo dnf install sqlitebrowserManjaroでは、pacmanを使用します。
sudo pacman -Sy sqlitebrowserSQLファイルからデータベースをインポートする
DB4Sが起動すると、データベースは読み込まれていません。データとデータベースのテーブル定義をインポートする方法と、自分のデータベースを作成する方法について2つ見ていきます。
時々、SQL形式のデータベースダンプファイルが渡されたり送られたりすることがあります。これは、データベースを再作成し、そのデータをデータベースに挿入するために必要な指示を含んでいます。
テーブル定義とデータをインポートするためのもう一つの一般的な形式は、カンマ区切り値(CSV)形式です。データ生成サイト(例:Database Test Data)を使用して、練習用のダミーデータを生成することができます。その後、データをSQLまたはCSVとしてエクスポートできます。
以下は、そのサイトで作成したSQLファイルです。エクスポートした後、ファイルの先頭にSQLiteに必要な行を追加して編集しました:
BEGIN TRANSACTION;
その後、ファイルを保存しました。DB4Sでは、ファイル > インポート > SQLファイルからデータベースをクリックします。
ファイル選択ダイアログが開き、SQLファイルを選択できます。私たちの例では、ファイル名は「database_dump.sql」で、ホームディレクトリのルートにあります。
ファイルを選択した状態で、「開く」をクリックすると、ファイル保存ダイアログが表示されます。新しいデータベースの名前を付けて、保存先を決める必要があります。私たちはそれを「geekbase.sqlite3」と呼び、自分のホームディレクトリに保存しています。
進む準備ができたら「保存」をクリックしてください。ソースSQLファイルを特定し、新しいデータベースに名前を付けたので、インポートプロセスを開始できます。完了すると、以下の通知ダイアログが表示されます。
データベースにテーブルとデータを追加したので、変更を保存するように求められています。そのため、私たちは「保存」をクリックして保存します。
メインDB4Sウィンドウは、私たちのデータベースの構造を表示するようになります。
SQLファイルには1つの定義しかありませんでしたが、2つのテーブルが作成されました。これは、「id」フィールドが自動インクリメントフィールドとして定義されていたためです。新しいレコードがデータベースに追加されるたびに、自動的に追加されます。SQLiteは、自動インクリメントフィールドを追跡するためのテーブルを作成します。
「データを参照」タブをクリックして、新しく追加されたレコードを確認してください。
もちろん、データベースの力はその検索とレコードの抽出能力にあります。SQL対応のデータベースでは、これを行うためにSQL言語を使用します。始めるには、「SQLを実行」タブを開きます。
次のSQLコマンドを追加しました:
SELECT * FROM account_details WHERE last_name LIKE "%ll%" ORDER BY stateこれにより、苗字にダブル「l」が含まれる人を検索し、結果は州ごとに整理されます。SQLコマンドを実行するには、青い矢印(「再生」ボタンのように見えます)をクリックしてください。結果は下のペインに表示されます。
私たちは、名字に二重の「l」を含む4件の記録を持っており、それらは州ごとにアルファベット順に、アリゾナからウィスコンシンまで並べられています。
CSVファイルからデータベーステーブルをインポートする
適切なCSVファイルからテーブルをインポートすることもできます。その最も便利な方法は、CSVファイルの最初の行にテーブルのフィールド名を含めることです。以下は、CSVファイルの短いセクションです。
最初の行にはフィールド名が含まれています:first_name、last_name、created、email、state、およびID。他の行には、テーブルに追加される各レコードのデータ値が含まれています。これは以前と同じデータですが、ファイル形式だけが変更されています。
CSVデータをインポートする時は、インポート先となる空のデータベースを作成する必要があります。そのためには、ツールバーの「新しいデータベース」をクリックしてください。
ファイル保存ダイアログが開きます。新しいデータベースに名前を付け、保存場所を決めます。私たちはそれを「howtogeek.sqlite3」と呼び、ホームディレクトリに保存する予定です。
「テーブル定義の編集」ダイアログが表示されたら、「キャンセル」をクリックします。メインのDB4Sウィンドウに戻り、ファイルをクリックし、次にインポート、CSVファイルからテーブルを選択します。CSVファイルを選択できるファイル選択ダイアログが開きます。
私たちの例では、それは「users.csv」と呼ばれ、ホームディレクトリのルートにあります。「開く」をクリックすると、DB4SがCSVデータをどのように解釈するかを示すプレビュー対話ボックスが表示されます。
ファイルの名前はテーブルの名前として使用されます。必要に応じてこれを編集できますが、必ず「最初の行に列名を含める」というチェックボックスを選択してください。
「OK」をクリックします(上の画像には画面外にあります)。データがインポートされ、すべてが正常であれば、「インポート完了」のダイアログが表示されるはずです。 「OK」をクリックしてください。
「データを参照」をクリックすると、インポートされたデータが表示されます。
ただし、まだ小さな調整が必要です。「データベース構造」タブをクリックし、テーブルの名前を選択してから、ツールバーの「テーブルを変更」をクリックしてください。
「テーブル定義の編集」ダイアログで、「id」フィールドにある「AI」(自動増分)チェックボックスを選択します。
「PK」(プライマリキー)チェックボックスは自動的に選択されていますので、「OK」をクリックしてください。これにより「id」フィールドが自動インクリメントに設定されます。これで、動作を確認するためにデータベースに新しいレコードを追加できます。
「SQLを実行」タブをクリックし、次に上部のペインに以下のSQLを入力します(「id」以外のすべてのフィールドに値を供給することに注意してください):
INSERT INTO "users"
("first_name","last_name","created","email","state")
VALUES ('Dave','McKay','12/08/2020','dave@llk.com','Idaho');
青い矢印(再生ボタンに見える)をクリックして、SQLコマンドを実行します。「データをブラウズ」をクリックし、下にスクロールしてください。新しく追加したレコードが見えるはずで、自動的に提供される「id」フィールドには、前の最高の「id」値よりも1つ高い値が含まれています。
データベースを手動で作成する
SQLファイルやCVSファイルをインポートする準備ができていない場合は、データベースを手動で作成する必要があります。始めるには、「新しいデータベース」をクリックするとファイル保存ダイアログが表示されます。新しいデータベースの名前と保存先を入力してください。
私たちは自分たちのデータベースを「geeksrock.sqlite3」と名付け、これを「ドキュメント」ディレクトリに保存しています。データベースの名前を付け、保存したい場所に移動したら、「保存」をクリックしてください。
選択を確認するように求められたら、再度「保存」をクリックしてください。
「テーブル定義を編集」ダイアログが表示されます。新しいテーブルに名前を付けてください(私たちは「eagles」と名付けました)、「フィールドを追加」ボタンをクリックします。今、フィールドの名前を入力し、「タイプ」ドロップダウンメニューからその情報の種類を選択できます。
私たちは、ワシの名前を保持するためのテキストフィールドと、翼幅を保持するための実数(浮動小数点)数値フィールドを追加しました。
各フィールドの横にあるチェックボックスやその他のオプションを使用して、次の動作を追加できます:
- NN (Null禁止): このオプションが設定されている場合、フィールドは空のままにすることができません。このフィールドに値を提供せずにレコードを追加しようとすると、拒否されます。
- PK (プライマリキー): テーブル内のレコードにユニークな識別子を提供するフィールド(またはフィールドのグループ)。これは、上記で説明した自動インクリメントの整数フィールドのような単純な数値である場合もあります。しかし、ユーザーアカウントのテーブルでは、ユーザー名である可能性があります。テーブル内にはプライマリキーは1つしか存在できません。
- AI (自動増分): 数値フィールドは、次の未使用値で自動的に入力できます。これは、上記の例で取り上げた「id」フィールドで使用しました。
- U(ユニーク): このレコードの各フィールドにはユニークな値が必要であり、このテーブルのこのフィールドには重複が存在してはいけません。
- デフォルト: このフィールドに値がないレコードが追加される場合、デフォルト値が提供されます。
- チェック:レコードが追加されるときにフィールドにチェックを実行できます。たとえば、電話番号フィールドの値が少なくとも10文字であることをチェックすることができます。
- 照合: Sqliteは異なる文字列比較方法を使用できます。デフォルトは
BINARYです。他のオプションはNOCASEで、大文字と小文字を区別しないものと、RTRIMで、末尾の空白を無視します。ほとんどの場合、これをデフォルト値に任せることができます。 - 外部キー: 別のテーブルのキーと一致しなければならないレコード内のフィールドまたはフィールドのグループのことです。たとえば、ワークショップのツールのデータベースでは、個々のツールのテーブルとツールのカテゴリの別のテーブルがあるかもしれません。ツールのカテゴリが「ハンマー」、「スパナ」、および「ドライバー」である場合、「のみ」と「ちょうな」といったレコードは追加できません。
必要なフィールドを追加したら「OK」をクリックしてください。データベースが作成され、最初のテーブルが追加されると、いくつかのレコードを追加できます。
"SQLを実行"タブでは、いくつかのレコードをテーブルに追加するために、SQLのINSERT文を何度も使用しました。
「データを参照」タブを使用して、新しいレコードを確認することもできます。
ユーザーインターフェースを通じて新しいレコードを追加したい場合は、ツールバーの「新しいレコード」をクリックしてください。そうすれば、SQLを理解することなく新しいレコードの値を入力できます。
他のアプリケーションのデータベース
他のアプリケーションに属するSQLiteデータベースを見るためにDB4Sを使用することもできます。他のデータベースの構造や内容を調査することは、有益であったり(ただ興味深かったり)します。ただし、他のアプリケーションが所有するデータベースに変更を加えないようにすることが重要です。そうしないと、そのアプリケーションの動作に悪影響を及ぼす可能性があります。
Firefoxが作成し維持するSQLiteデータベースの一つを見てみましょう。ツールバーの「データベースを開く」をクリックすると、ファイルオープンダイアログが表示されます。Firefoxは、自分のホームディレクトリ内にある隠しディレクトリ「.mozilla」の中に「firefox」と呼ばれるディレクトリにファイルを保管します。
私たちのテストマシンでは、FirefoxのSQLiteデータベースがこの場所に見つかりました: "home/dave/.mozilla/firefox/vpvuy438.default-release";あなたのものも同様の場所にあります。
「cookies.sqlite」データベースを開くので、ファイルを強調表示して「開く」をクリックします。データベースが開かれると、そのテーブル構造、フィールド定義、およびデータを調べることができます。
ここでは、さまざまなGoogleとYouTubeのクッキーを見ることができます。
輸出は洞察を提供する
データベースのエクスポート(ファイル > エクスポート > SQLファイルへのデータベース)も便利です。データベースのSQLダンプを見ることで、SQLステートメントで表現されたデータベースの全スキーマを確認できます。








