← 返回命令列表

Linux command

csvsql 命令

文本

涉及管道、覆盖或删除,执行前请先确认路径和参数。

常用示例

Execute SQL query

csvsql --query "[SELECT * FROM data WHERE id > 10]" [data.csv]

Generate CREATE TABLE

csvsql [data.csv]

Import CSV into database

csvsql --db [postgresql:///mydb] --insert [data.csv]

Query multiple files

csvsql --query "[SELECT * FROM file1 JOIN file2 ON file1.id = file2.id]" [file1.csv] [file2.csv]

Create table and insert

csvsql --db [sqlite:///data.db] --insert --create-if-not-exists [data.csv]

Query with aggregation

csvsql --query "[SELECT category, COUNT(*) FROM data GROUP BY category]" [data.csv]

说明

csvsql is part of csvkit that enables SQL queries on CSV files or imports CSV data into databases. It creates an in-memory SQLite database for queries or connects to external databases for import operations. Without --query, it outputs CREATE TABLE statements suitable for the data, useful for generating schema. With --query, it executes SQL against the CSV data, supporting joins, aggregations, and all SQL operations. For database import, csvsql supports various databases through SQLAlchemy connection strings, including PostgreSQL, MySQL, SQLite, and others. It handles type inference to create appropriate column definitions.

参数

--query _SQL_
Execute SQL query on the CSV data.
--db _CONNECTION_
Database connection string (SQLAlchemy format).
--insert
Insert data into database (requires --db).
--create-if-not-exists
Create table if it doesn't exist.
--tables _NAMES_
Comma-separated table names (default: filenames).
--no-create
Don't generate CREATE TABLE statement.
-d _CHAR_, --delimiter _CHAR_
Field delimiter (default: comma).
-e _ENCODING_, --encoding _ENCODING_
Input file encoding.
--no-inference
Disable type inference.

FAQ

What is the csvsql command used for?

csvsql is part of csvkit that enables SQL queries on CSV files or imports CSV data into databases. It creates an in-memory SQLite database for queries or connects to external databases for import operations. Without --query, it outputs CREATE TABLE statements suitable for the data, useful for generating schema. With --query, it executes SQL against the CSV data, supporting joins, aggregations, and all SQL operations. For database import, csvsql supports various databases through SQLAlchemy connection strings, including PostgreSQL, MySQL, SQLite, and others. It handles type inference to create appropriate column definitions.

How do I run a basic csvsql example?

Run `csvsql --query "[SELECT * FROM data WHERE id > 10]" [data.csv]` in a terminal, then adjust file names, paths, flags, or remote targets for your system.

What does --query _SQL_ do in csvsql?

Execute SQL query on the CSV data.