• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

sqlite3

date: 2021-01-14 excerpt: sqlite3について

tag: sqlite3db


sqlite3について

概要

  • アプリケーションに組み込んで利用できるsqlバックエンド
  • 一応、マルチスレッドにも対応している
    • 書き込み時のロックを提供する形でマルチスレッドに対応しているが、あまり歓迎されていない
  • レコードを削除しても、その分の領域は開放されない
    • そのため、頻繁にレコードを削除するような場合は、定期的にVACUUMを実行する必要がある
  • DBにはOLTPとOLAPという区分けがあり、sqliteはOLTP
    • OLTP
      • Online Transaction Processing System
    • OLAP
      • Online Analytical Processing system

cuiツールのinstall

debian, ubuntu

$ sudo apt-get install sqlite3

nix

$ nix profile install nixpkgs#sqlite

CUIでの基本的な使い方

新規にdbファイルを作成してテーブルを作成する

$ sqlite3 example.db 'CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);'

dbファイルがある時、データを挿入

$ sqlite3 example.db 'INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);'
$ sqlite3 example.db 'INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);'

dbファイルがある時、任意のクエリを対話的に実行する

$ sqlite3 example.db

sqlite > .tables # table一覧を表示する
profile
sqlite > select * from profile limit 10; # クエリを打つ
1|ninomiya_emi@example.com|二宮 えみ|女|1978-05-17 00:00:00.000000
2|uehara_yoshiki@example.com|上原 剛基|男|1969-06-26 00:00:00.000000
3|kuramoto_chinatsu@example.com|倉本 千夏|女|1971-12-24 00:00:00.000000
4|ozaki_tetsuhiro@example.com|尾崎 鉄洋|男|1943-09-26 00:00:00.000000
5|hirabayashi_ryousuke@example.com|平林 亮介|男|1943-05-05 00:00:00.000000
6|aoi_yuri@example.com|蒼井 妃里|女|1971-06-15 00:00:00.000000
7|yamada_aoi@example.com|山田 あおい|女|1970-02-13 00:00:00.000000
8|matsushita_shou@example.com|松下 翔|男|1950-12-29 00:00:00.000000
9|iwatani_tetsuji@example.com|岩谷 鉄二|男|1982-04-18 00:00:00.000000
10|akamatsu_hidetaka@example.com|赤松 秀隆|男|1974-10-26 00:00:00.000000

sqlite> .schema profile # tableのスキーマを確認
CREATE TABLE profile (
        id INTEGER NOT NULL,
        email VARCHAR,
        name VARCHAR,
        sex VARCHAR,
        birth_day DATETIME,
        PRIMARY KEY (id)
);

データベースのファイルサイズを小さくする

  • レコードを削除しても、その分の領域は開放されない
$ sqlite3 example.db 
sqlite> VACUUM;

参考

  • How To Install and Use SQLite on Ubuntu 20.04


sqlite3db Share Tweet