#目的
ざっくりしたSQLiteの使い方を自分向けにメモする。
#ダウンロード
このサイトからダウンロードする。
Windowsの場合は(作者はコマンドラインツールが欲しいので)以下をダウンロードする(バージョンは記載時点)。
sqlite-tools-win32-x86-3370100.zip
LPrecompiled Binaries for Windows
リナックスでは下記だが、sudo apt-get install sqlite
でもインストール可能。
Precompiled Binaries for Linux
Lsqlite-tools-linux-x86-3370100.zip
#起動
Windowsではダブルクリックで起動可能。
コマンドラインから起動する場合、コマンドライン引数でDBのファイルを渡すことが可能。
ダブルクリックでの起動や、起動引数なしの場合はメモリモードで起動する。
- 引数なし
C:\Users\misaka\Downloads\sqlite-tools-win32-x86-3370100>sqlite3.exe
SQLite version 3.37.1 2021-12-30 15:30:28
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>
- 引数あり
C:\Users\misaka\Downloads\sqlite-tools-win32-x86-3370100>sqlite3.exe test.db
SQLite version 3.37.1 2021-12-30 15:30:28
Enter ".help" for usage hints.
sqlite>
Linuxではターミナルから起動可能。エイリアスやパスを通すなどすると使用しやすくなる。
コマンドライン引数でDBのファイルを渡すことが可能。
ダブルクリックでの起動や、起動引数なしの場合はメモリモードで起動する。
- 引数なし
misakayuni@misaka-dsktop:/mnt/c/$ sqlite
SQLite version 2.8.17
Enter ".help" for instructions
sqlite>
- 引数あり
misakayuni@misaka-dsktop:/mnt/c/$ sqlite
SQLite version 2.8.17
Enter ".help" for instructions
sqlite>
#コマンド
コマンド | 効果 |
---|---|
.q | 終了する。 |
.databases | アタッチされているデータベースの一覧を表示する。 |
.schema | テーブルの構造を表示する。 |
#通常のSQLと違う点
-
データ型は存在しているが意味をなしていない。
例えば、テーブル定義時にdateで入れていてもtextとして扱われてしまうため「A」をinsertできてしまう。 -
アタッチをして複数のDBを横断してSQLを発行できる。アタッチできるDBの最大数は10個。
アタッチする場合はattach '(DB名)' as (使用するときのエイリアス名);
。
デタッチする場合はdetach (使用するときのエイリアス名);
。 -
ファイルに書き込む作業があるので毎回コミットを行うと処理が重い。
なので必要な範囲で自分でbegin-endを行うと高速化が可能。
#終わりに
気が向いたら追記します。
アドベントカレンダー大遅刻でごめんなさい。