さまざまなファイル形式の表データを探索・整理・変換できる、ターミナル向けの多機能スプレッドシートツール。
neilotoole/sq
CSV、Excel、JSONなどのファイルやSQLデータベースに、jq風またはSQL構文でクエリやJOINを実行できるCLIツール。
- スター
- 2,573
- フォーク
- 43
- 未解決の Issue
- 87
- 最終コミット
- 昨日
これは何?
sqは、SQLデータベースやCSV、TSV、JSON、Excel XLSXなどのドキュメントファイルを、クエリ可能なデータソースとして扱うCLIツールです。各ソースにハンドルを割り当て、jq風のクエリ言語またはネイティブSQLでコマンドを実行できます。
sqでは、CSVファイルとPostgresのテーブル、MySQLのテーブルとExcelのワークシートなど、異なるソース間でデータをJOINできます。クエリ結果はJSON、CSV、XLSX、HTML、Markdown、XMLなどの形式で出力でき、データベースのテーブルに直接挿入することもできます。また、テーブル、カラム、サイズなどのソース構造を確認したり、スキーマや行データの差分を調べたり、テーブルのコピー、TRUNCATE、DROPを実行したりできます。
プロジェクトではSQLite、DuckDB、PostgreSQL、SQL Server、MySQL、ClickHouse、Oracle、rqlite用のドライバーが案内されており、Homebrew、Scoop、シェルスクリプト、Go、Dockerでインストールできます。
主な機能
- 01jq風の構文またはネイティブSQLでデータソースにクエリを実行。
- 02CSVとPostgresなど、異なるソース間のテーブルをJOIN。
- 03結果をJSON、CSV、XLSX、HTML、Markdown、XMLなどにエクスポート。
- 04ソースのメタデータを確認し、スキーマや行データの差分を調査。
- 05SQLデータベースのソースでテーブルのコピー、TRUNCATE、DROPを実行。
ユースケース
- アドホック分析のために、ExcelシートやCSVのエクスポートデータを本番データベースのテーブルとJOINする。
- 見慣れないSQLiteやPostgresのデータベースをターミナルから調べる。
- シェルのパイプラインで、スプレッドシートやCSVをJSONなどの形式に変換する。
- 2つのデータベース環境間でスキーマやデータを比較する。
クイックスタート
- 1
Homebrewを使ってmacOSにインストール
brew install sq - 2
Scoopを使ってWindowsにインストール(先にbucketを追加)
scoop bucket add sq https://github.com/neilotoole/sq - 3
Goでインストール(SQLiteのbuild tagsが必要)
go install -tags "sqlite_vtable sqlite_stat4 sqlite_fts5 sqlite_introspect sqlite_json sqlite_math_functions" github.com/neilotoole/sq@latest - 4
READMEに記載されているLinux用の公式インストールスクリプトを実行
使う前に知っておきたいこと
- Linuxへのインストールではダウンロードしたシェルスクリプトを使用します。また、Goでインストールすると、cloneしたリポジトリからmake installでビルドしない限り、バージョンはv0.0.0-devと表示されます。
収録されている特集
トピック
よくある質問
- sq とは?
- CSV、Excel、JSONなどのファイルやSQLデータベースに、jq風またはSQL構文でクエリやJOINを実行できるCLIツール。 sqは、SQLデータベースやCSV、TSV、JSON、Excel XLSXなどのドキュメントファイルを、クエリ可能なデータソースとして扱うCLIツールです。各ソースにハンドルを割り当て、jq風のクエリ言語またはネイティブSQLでコマンドを実行できます。
- sq は無料で使えますか?ライセンスは?
- sq は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- sq は今もメンテナンスされていますか?
- 活発にメンテナンス中。sq の最終コミットは 2026年10月21日 です。
- sq は何に使えますか?
- アドホック分析のために、ExcelシートやCSVのエクスポートデータを本番データベースのテーブルとJOINする。 見慣れないSQLiteやPostgresのデータベースをターミナルから調べる。 シェルのパイプラインで、スプレッドシートやCSVをJSONなどの形式に変換する。 2つのデータベース環境間でスキーマやデータを比較する。
- sq のインストール方法は?
- Homebrewを使ってmacOSにインストール: brew install sq Scoopを使ってWindowsにインストール(先にbucketを追加): scoop bucket add sq https://github.com/neilotoole/sq Goでインストール(SQLiteのbuild tagsが必要): go install -tags "sqlite_vtable sqlite_stat4 sqlite_fts5 sqlite_introspect sqlite_json sqlite_math_functions" github.com/neilotoole/sq@latest READMEに記載されているLinux用の公式インストールスクリプトを実行
- sq はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/neilotoole/sq
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
CSV、Parquet、JSON、Excel、SQLiteなどの表形式データを閲覧・クエリできる軽量なターミナル(TUI)アプリ。
大容量ファイルの処理に適した、ExcelやCSVの読み書きに使える省メモリなJavaライブラリ。
ADBCドライバー経由でデータベースにSQLクエリを実行できる、対話型シェルとファイル出力に対応したコマンドラインツール。
複数のデータベースに対して順序付きのスキーマ変更を適用できる、CLIとライブラリを備えたGo製のマイグレーションツール。