SQLite

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動

メインページ > 工学 > 情報技術 > プログラミング > SQLite

目次[編集]

  • SQLite/インストール (※ページ内リンク)
  • SQLite/基本操作 (起動方法、データベースの作成、テーブルの作成と削除など)
  • SQLite/ユーザー
  • SQLite/データの挿入
  • SQLite/データの検索

関連リンク[編集]

SQL一般の仕様や文法についての解説は

にあります。

インストール方法[編集]

mysql同様にsqliteも単独で動くバージョンも存在します。なぜなら、手元のパソコンで動作確認をする時や、手元でsqlite形式のデータベースを作成するときに必要だからです。sqliteを手元のパソコンにインストールしたい場合、Fedora ならコマンド

sudo dnf install sqlite

でインストールできます。

2021年現在の最新バージョンはsqlite3 です。インストールに成功したと思ったら、バージョン確認のためコマンド sqlite3 -version で確認しましょう(バージョン番号が必要です。バージョン番号が無いとコマンド認識せずエラーになります(試した) )。

sqlite3 -version
3.36.0 2021-06-18 18:36:39 5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafaalt1

のように、コマンドに下にバージョン番号などが出力表示と思います。



※ 下書き[編集]

※ 下記の節から、節「外部リンク」(←あれば)の直前までは下書きです。

内容が充実してきたら、専用のサブページを作成して、内容をサブページに移行してください。


バックアップ/外部出力の方法[編集]

データベースのデータ群のバックアップをしたい場合、windowsなら単にマウスで右クリックでファイルごとコピーペーストすればいいだけなのですが、しかしLinuxだとインストール状況によっては、そうはいきません。

「sample.db」などのデータベースを作成しても、Linuxでエクスプローラー的ツールで検索をかけても、エクスプローラーでは見つからない形式で保存されている場合もあります(他ファイルの内部データとして保存されている場合、エクスプローラでは見つけようがありません)。

なので、コマンドラインで、下記のように.dumpなどでバックアップする必要が生じることもあります。

基本: コマンドライン画面に出力[編集]

SQLiteは自動的にアプリ内でデータベースを保管してくれますが、しかしそれだけだと、外部にデータベースを渡すこともできないですし、OSが故障したりしたときのためのバックアップも不可能になってしまいます。

このため、バックアップが必要です。

.dump というコマンドを、SQLiteへのログイン中にて使用することで(MySQLとは異なり、SQLiteではログイン中です)、データベースをターミナルに出力表示できます。

なので、もしSQLiteにログインしていなければ、いったんコマンド sqlite3 でSQLiteにログインする必要があります。

たとえば『SQLite/基本操作』で作成したテーブルがデータベースに既にある場合、SQLiteのデータベースにアクセス後(データベース名を指定して.open sample.dbのようにアクセスしてください)、コマンドで

dump testTable

すれば(testTableの部分はテーブル名。作成したテーブル名によって別の名前に変わる。テーブル名が思い出せなければコマンド.tableでテーブル一覧を確認できる。)

たとえば下記のようにダンプ結果が表されます。(冒頭のsqlite> .dump testTable だけコマンドライン側の入力行です。)

sqlite> .dump testTable
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE testTable( gensobangou ,gensomei ,gensokigou );
INSERT INTO testTable VALUES(1,'Hydrogen','H');
COMMIT;

テキストファイルに出力[編集]

ダンプ結果はテキストファイル形式で出力できます。というか、これが無いと不便です。コマンドラインをいちいちコピーペーストしていたら、コピペミスなどでデータ消失などの原因にもなりません。

実務では、移植などの際にはテキストファイルに出力しましょう。

テキスト出力の手順は、まず、出力先ファイル名の指定

.output ファイル名.txt 

です。 たとえば「dump.txt」というファイル名なら、

.output dump.txt 

です。

ファイルパスなどを指定しない場合、ホームフォルダに出力ファイルが作成されることになると思います。

つづいて、コマンド

.dump 

を実行することによって、接続中のデータベース(たとえばsample.db)にある全てのデータが出力されます。


よって上記の順番どおりにコマンド実行後に、ホームフォルダにある dump.txt を見に行って、マウス操作で普通にそのファイルを開いてみると、『メモ帳』アプリなどのテキストエディタが起動するので、

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE testTable( gensobangou ,gensomei ,gensokigou );
INSERT INTO testTable VALUES(1,'Hydrogen','H');
COMMIT;

のように、ダンプ結果が書き込みされているのが確認できます。


ただし、このままの状態だと、今後にダンプする全ての出力が、テキストファイルに出力されたままになってしまいます。

よって、ダンプ出力を終えたら、コマンド

.output stdout 

によって出力先を標準入出力に戻してください。