SQL の実行

← 目次

TableSkim は DuckDB、SQLite、Parquet、JSON ファイルに SQL を実行できます。クエリの結果は SQL Result という追加のシートに表示され、ほかのシートと同じように並べ替え、フィルタ、検索、統計、エクスポートができます。

SQL ウィンドウと結果のシート

クエリできるもの

ファイルSQL の方言使えるテーブル
DuckDB データベースDuckDBデータベースのすべてのテーブルとビュー
SQLite データベースSQLiteデータベースのすべてのテーブルとビュー
Parquet ファイルDuckDB拡張子を除いたファイル名(sales.parquet → sales)
JSON ファイルDuckDB拡張子を除いたファイル名(events.jsonl.gz → events)

空白、記号、ASCII 以外の文字を含む名前は、SELECT * FROM "多言語サンプル" のようにダブルクォートで囲みます。

クエリの実行

SQL を入力し、GUI では Run(Ctrl+Enter)、ターミナル UI では Enter を押します。

この例では demo/examples/iris.csv を File → Convert to Parquet / DuckDB...(TUI は P)で変換し、生成された iris.parquet を開きます。CSV のままでは SQL を実行できません。結果は各品種 50 個体、花びらの長さの平均が 1.462、4.260、5.552 cm の 3 行です。

SELECT species, count(*) AS flowers,
       round(avg(petal_length), 3) AS mean_petal_length
FROM iris
GROUP BY species
ORDER BY species

ファイルは読み取り専用

ファイルは読み取り専用で開くので、SQL でデータベースやファイルを変更することはできません。SQL では問い合わせと一時テーブル・一時ビューの操作を許可しています。一時テーブルや一時ビューは作成・更新・削除でき、ウィンドウを閉じると消えます。

CREATE TEMP TABLE setosa AS SELECT * FROM iris WHERE species = 'setosa';

SQL による外部ファイルへの書き込み(COPY ... TO、EXPORT、VACUUM INTO)、別のデータベースの接続、拡張機能の読み込み、エンジン設定の変更は拒否します。クエリの結果を保存するには Export View...(ターミナル UI では w)を使ってください。

履歴

実行したクエリはすべて履歴に保存され、すべてのウィンドウと以降のセッションで共有されます。

履歴は sql_history という名前のファイルに保存されます。

プラットフォーム場所
Linux$XDG_STATE_HOME/tableskim/(通常は ~/.local/state/tableskim/)
macOS~/Library/Application Support/TableSkim/
Windows%APPDATA%\TableSkim\

Microsoft Store 版は専用のフォルダー %LOCALAPPDATA%\Packages\<パッケージ名>\LocalCache\Roaming\TableSkim\ に保存します。アプリをアンインストールすると Windows が削除します。

補完

Tab でカーソル直前の単語を補完します。対象はテーブル名・ビュー名、列名、 SQL のキーワードです。名前. の後ではそのテーブルの列を候補にし、FROM や JOIN で付けた別名も理解します。たとえば SELECT i. FROM iris AS i の SELECT i. では iris の列を補完します。

ヒント