384t.net

← Armarium

Armarium マニュアル

SQL

登録したテーブルに対して、SQL で問い合わせや更新ができます。SQL の方言は SQLite です。複数のファイルを JOIN して集計することもできます。

SQL エディターを使う

ツールバーの「SQL」で、SQL エディターを開きます (「SQL を隠す」で閉じます)。

  • Ctrl+Enter で実行します。範囲を選んでいるときは選択範囲を、選んでいないときはすべてを実行します。; で区切った複数の文は、順に実行します。
  • テーブル名、列名、キーワード、関数名を補完します。
  • 実行中は「キャンセル」で中断できます。
  • クエリの履歴 (直近 100 件) から、もう一度実行できます。

テーブルは、SQL 名で参照します。SQL 名は、CSV と TSV ではファイル名、Excel ではブック名とシート名を _ でつないだものです。ワークスペースを参照してください。列名はファイルのヘッダー行から付きます。日本語の列名も使えます。

-- 複数のファイルを結合して集計する
SELECT u.部署, SUM(s.金額) AS 合計
FROM sales s
JOIN users u ON u.id = s.user_id
GROUP BY u.部署
ORDER BY 合計 DESC;

-- Excel のシートと比較する
SELECT b.科目, b.予算, a.実績, a.実績 - b.予算 AS 差異
FROM budget_2026 b
LEFT JOIN actual a USING (科目);

-- 月ごとの合計 (日付の列は ISO 8601 のテキストなので、日付関数が使えます)
SELECT strftime('%Y-%m', date) AS month, SUM(amount) FROM sales GROUP BY 1;

使える文

種類 文
問い合わせ SELECT、WITH ... SELECT、VALUES。再帰 CTE、ウィンドウ関数、FULL OUTER JOIN も使えます。
更新 INSERT、UPDATE、DELETE。RETURNING と UPDATE ... FROM も使えます。
実行計画 EXPLAIN QUERY PLAN、EXPLAIN

更新の文は、一つの登録済みテーブルだけを変更できます。

使えない操作

安全のため、次の操作は拒否します。何も実行されません。

  • CREATE、ALTER、DROP (列や構造の変更は、グリッドの操作で行います)
  • ATTACH、DETACH、PRAGMA、VACUUM、ANALYZE、REINDEX
  • トランザクションの制御 (BEGIN、COMMIT、ROLLBACK、SAVEPOINT)
  • 内部テーブル (__arm_*、sqlite_*) の参照
  • rowid の更新
  • 許可されていない関数の呼び出し

SQL からは、ファイルシステムやネットワークにアクセスできません。ファイルへの書き込みは、保存とエクスポートだけが行います。

結果

  • SELECT: 結果をグリッドに表示します (読み取り専用)。「CSV にエクスポート」「Excel にエクスポート」「新しいソースとして保存」ができます。「新しいソースとして保存」は、ファイルを書き出して、ワークスペースに登録します。
  • 更新: 「<テーブル名> の <n> 行を変更しました」と表示します。変更したテーブルは「未保存」になり、Ctrl+S で保存するまでファイルは変わりません。変更は、Ctrl+Z で元に戻せます。
  • エラー: エラーメッセージを表示します。

読み取り専用の形式 (.xls など) のテーブルも、SQL で変更できます。その場合の保存は、エクスポートのみです。

追加の関数

SQLite の組み込み関数に加えて、次の関数を使えます。

関数 用途
regexp(pattern, text) REGEXP 演算子を使えるようにします。
regexp_replace(text, pattern, repl) 正規表現で置換します。
normalize_nfkc(text) 全角と半角をそろえます (日本語のデータの照合に便利です)。
SELECT * FROM sales WHERE normalize_nfkc(name) REGEXP '^アップル';