Skip to content

suyash-thakur/sql-csv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sql-csv

sql-csv is a simple library that allows you to run SQL queries on CSV files.

Table of Contents

Installation

You can install sql-csv using npm: npm install sql-csv

Usage

To use sql-csv, you first need to create a new instance of the CsvSql class:

const CsvSql = require('sql-csv');

const csvSql = new CsvSql('path/to/csv/file.csv');

You can also pass url to a CSV file:

const csvSql = new CsvSql('https://example.com/file.csv');

You can then run SQL queries on the CSV data using the query method:

const result = await csvSql.query('SELECT * FROM file WHERE column1 = "value"');
  • The table name in the query must match the name of the CSV file.

  • The column names in the query must match the column names in the CSV file.

  • The values in the query must be enclosed in double quotes.

  • The query must end with a semicolon.

  • The result will be an array of objects, where each object represents a row in the CSV file.

Supported SQL Syntax

sql-csv supports a subset of the SQL syntax. The following SQL statements are supported:

  • SELECT
  • FROM
  • WHERE
  • AND
  • OR
  • ORDER BY
  • GROUP BY
  • HAVING
  • LIMIT
  • OFFSET

The following operators are supported:

  • =
  • !=
  • >
  • <
  • >=
  • <=

The following functions are supported:

  • COUNT
  • MIN
  • MAX
  • AVG
  • SUM
  • DISTINCT

Examples

const result = csvSql.query('SELECT * FROM data');
const result = csvSql.query('SELECT column1, column2 FROM data');

Benchmark Results

Query 1: SELECT * FROM data

Rows Time (ms)
1000 19.9
10000 54.7
100000 63.5376
1000000 4528.325

Query 2: SELECT * FROM data WHERE column1 = "value"

Rows Time (ms)
1000 8.53
10000 43.8
100000 52.5
1000000 2330.46

About

Javascript package that allows you run SQL queries on CSV.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published