データベース
SQLite
bomctlをやるに当たって,データベースにsqliteを使っているので少し勉強しなきゃいけなくなった. そもそもデータベースとかSQLがわかっていないので,sqliteに限らない(例えば一般的なSQLとか)のことも書く気がするけどご愛嬌. 場合によってはbomctlのことも書くかもしれない.
Package install for CLI tool (AlmaLinux9)
$ sudo dnf install sqlite
SQLite CLI
$ sqlite [/path/to/dbfile]
$ sqlite ~/.cache/bomctl/bomctl.db
SQLiteの特殊コマンド?系
.tables
.schema -- 全テーブルの構造
.schema テーブル名 -- 特定テーブルの構造
.quit
.help
SQL
SELECT カラム名 FROM テーブル名; -- 基本的な検索
SELECT COUNT(*) FROM テーブル名; -- レコード数を数える
SELECT * FROM テーブル名; -- 全カラムを表示
SELECT d.id, m.name FROM documents d LEFT JOIN metadata m ON d.id = m.document_id;
# JOIN: 複数のテーブルを結合
# LEFT JOIN: 左側(documents)のすべてのレコードを表示
# ON d.id = m.document_id: 結合条件(documentsのidとmetadataのdocument_idが一致)
SELECT * FROM テーブル名 LIMIT 5; -- 最初の5件だけ表示
SELECT DISTINCT カラム名 FROM テーブル名; -- 重複を除いた値一覧
SELECT * FROM テーブル名 WHERE カラム名 = '値';
SELECT * FROM テーブル名 WHERE カラム名 IS NULL; -- 空の値を検索
SELECT カラム名, COUNT(*) FROM テーブル名 GROUP BY カラム名; -- グループ別集計