| Name | Link | Documentation link | Programming language | Database | Column names from header row | Custom character encoding | Custom input field separator | Custom input record separator | Custom output field separator | Custom output record separator | JOINs | Use as library | Input formats | Output formats | Custom table names | Custom column names | Keep database file (for SQLite 3) | Skip input fields | Skip input records (lines) | Merge input fields | Database table customization | SQL dump | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AlaSQL CLI | https://github.com/agershun/alasql | https://github.com/agershun/alasql/wiki/AlaSQL-CLI | JavaScript | AlaSQL | yes, optional | no | yes, string | no | no | no | yes | yes, JavaScript | lines, DSV, XLS, XLSX, HTML tables, JSON | lines, DSV, XLS, XLSX, HTML tables, JSON | yes | yes | n/a | no | no | no | yes, can create custom table then import into it | yes | |
| csvq | https://github.com/mithrandie/csvq | https://mithrandie.github.io/csvq/reference | Go | custom SQL interpreter | yes, optional | yes, input and output | yes, character | no | yes | no | yes | yes, Go | CSV, TSV, LTSV, fixed-width, JSON | CSV, TSV, LTSV, fixed-width, JSON, Markdown-style table, Org-mode, ASCII table | yes | yes | n/a | no | no | no | yes, ALTER TABLE | no | |
| csvsql | https://github.com/wireservice/csvkit | http://csvkit.readthedocs.io/en/latest/ | Python | Firebird/MS SQL/MySQL/Oracle/PostgreSQL/SQLite 3/Sybase | yes, optional | yes, input and output | yes, string | no | yes | no | yes | yes, Python | delimited without quotes, DSV, Excel, JSON, SQL, fixed-width, DBF, and others (separate converters) | delimited without quotes, DSV, JSON, Markdown-style table, SQL (separate converters) | yes | no | yes | yes (separate tool) | no | no? | yes, UNIQUE constraints, database schema name, automatic column datatype or text | yes | |
| fsql | https://metacpan.org/release/App-fsql | https://metacpan.org/pod/distribution/App-fsql/bin/fsql | Perl | custom SQL interpreter | yes, always | no | no | no | no | no | yes | yes, Perl | CSV, TSV, LTSV, Perl, JSON, YAML | CSV, TSV, LTSV, Perl, JSON, YAML | yes | no | no | no | no | no | no | no | |
| q | https://github.com/harelba/q | https://github.com/harelba/q/blob/master/doc/USAGE.markdown | Python | SQLite 3 | yes, optional | yes, input and output | yes, string | no | yes | no | yes | yes, Python | delimited without quotes, DSV | delimited without quotes, DSV, custom using Python formatting string | no | no | yes | no | no | no | yes, automatic column datatype or text | no | |
| RBQL | https://github.com/mechatroner/RBQL | https://rbql.org/ | JavaScript, Python | custom SQL interpreter | yes, optional | yes, input | yes, string | no | yes | no | yes | yes, JavaScript and Python | DSV | DSV | no | no | n/a | no | no | no | no | no | |
| rows | https://github.com/turicas/rows | http://turicas.info/rows/command-line-interface.html | Python | SQLite 3 | yes, always? | no | no | no | no | no | no | yes, Python | CSV, JSON, XLS, XLSX, ODS, and others | CSV, JSON, XLS, XLSX, ODS, and others | no | no | no | no | no | no | no | no | |
| Sqawk | https://github.com/dbohdan/sqawk | https://github.com/dbohdan/sqawk#options | Tcl | SQLite 3 | yes, optional | no | yes, regexp, per-file | yes, regexp, per-file | yes | yes | yes | yes, Tcl | delimited without quotes, DSV, Tcl | delimited without quotes, CSV, JSON, ASCII/Unicode table, Tcl | yes | yes | yes | yes, any | no | yes, any consecutive | yes, column datatypes | no | |
| sqawk | https://github.com/tjunier/sqawk | https://github.com/tjunier/sqawk/blob/master/sqawk.1 | C | SQLite 3 | yes, optional | no | yes, string, per-file | no | no | no | yes | no | DSV | CSV | yes | no | yes | no | yes, until regexp matches | no | yes, primary key, indexes, foreign key constraints, automatic column datatype or text | yes | chunked mode (read and process only N lines at a time) |
| Squawk | https://github.com/samuel/squawk | Python | custom SQL interpreter | yes, always | no | no | no | no | no | no | yes, Python | CSV, Apache and Nginx log files | table, CSV, JSON | no | no | no | no | no | no | no | yes | ||
| termsql | https://github.com/tobimensch/termsql | http://tobimensch.github.io/termsql/ | Python | SQLite 3 | yes, optional | no | yes, regexp | no | yes | no | no | no | DSV, “vertical” DSV (lines as columns) | delimited without quotes, CSV, TSV, HTML, SQL, Tcl | yes | yes | yes | no | yes, N first and M last | yes, Nth to last | yes, primary key | yes | |
| trdsql | https://github.com/noborus/trdsql | https://github.com/noborus/trdsql#usage | Go | MySQL/PostgreSQL/SQLite 3 | yes, optional | no | yes, string | no | no | no | yes | no | CSV, LTSV, JSON | delimited without quotes, CSV, LTSV, JSON, ASCII table, Markdown | no | no | yes | no | no | no | no | no | |
| textql | https://github.com/dinedal/textql | https://github.com/dinedal/textql#usage | Go | SQLite 3 | yes, optional | no | yes, string | no | no | no | no | no | DSV | DSV | no | no | yes | no | no | no | no | no |