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.