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