All Over Tools logo
Tool Combiner
Analyze Tools Clean Tools Compare Tools Convert Tools Data Validation Extract Tools Format Tools Generate Tools Organize Tools Transform Tools
Image Tools Video Tools Audio Tools Subtitle Tools Font Tools
Analyze Tools Clean Tools Compress Tools Convert Tools Edit Tools Extract Tools Generate Tools Merge Tools Organize Tools Redact Tools Repair Tools Split Tools
Analyze Tools Clean Tools Compare Tools Convert Tools Extract Tools Generate Tools Merge Tools Transform Tools Validate Tools
Business Calculators Construction Calculators Date And Time Calculators Education Calculators Financial Calculators Food Calculators Health Calculators Math Calculators Science Calculators Sports Calculators Statistics Calculators
Blog About Us Contact Us

SQL Query Tool for CSV and JSON

Load one or more CSV, TSV, JSON, or JSONL files as named tables and query them with a documented read-only SQL subset - SELECT, WHERE, JOIN, GROUP BY, HAVING, ORDER BY, aggregates, and LIMIT. Preview results in a table and export as CSV, JSON, or SQL text, all locally in your browser.

Drop one or more CSV, TSV, JSON, or JSONL files here

or

CSV, TSV, JSON, JSONL - each file becomes a named table

What This Tool Does

This browser-based workspace loads CSV, TSV, JSON, and JSONL files into in-memory tables and runs read-only SQL against them. It does not write back to source files or connect to database servers.

Load Files and Review Loaded tables

Drop one or more supported files into the upload area, or select browse files. CSV and TSV headers become column names. Each file becomes a table name based on its filename: names are lowercased, non-alphanumeric characters become underscores, and duplicates receive suffixes such as _2 and _3.

Use Loaded tables to check the tables currently in memory. Select Remove table on a table entry to remove it from the workspace. Removing every table hides the workspace until you load another file.

Review the Inferred schema

Before writing SQL, check Inferred schema for each table’s column names and displayed types. The tool infers types from up to 500 sampled rows per column. A column may show as integer, number, boolean, date, text, or empty; an all-empty column can display as empty. Missing or empty delimited fields are treated as NULL.

Write and Run a Query

Write a SELECT statement in the Query box, or start with one of the example buttons. Use the generated table and column names shown in the workspace. The supported read-only subset includes:

FeatureNotes
SELECT / DISTINCTColumn lists, expressions, AS aliases, * and table.*
FROMOne base table per query, with optional alias
JOINJOIN / INNER JOIN / LEFT JOIN with an ON condition, across any loaded tables
WHEREComparisons, AND/OR/NOT, IN, LIKE, BETWEEN, IS [NOT] NULL
GROUP BY / HAVINGGroup by one or more expressions, filter groups after aggregation
ORDER BYMultiple keys, ASC/DESC, by alias or expression
LIMIT / OFFSETCap and page through result rows
AggregatesCOUNT (incl. DISTINCT), SUM, AVG, MIN, MAX
Scalar functionsUPPER, LOWER, LENGTH, ROUND, ABS, TRIM/LTRIM/RTRIM, CONCAT, COALESCE, SUBSTR, REPLACE
CASE WHEN ... THEN ... ELSE ... ENDConditional expressions in the SELECT list or WHERE clause

Anything outside this subset - INSERT, UPDATE, DELETE, DROP, CREATE, ATTACH, subqueries, window functions, or multi-statement scripts - is rejected before execution.

  1. Write the query using the names in Loaded tables and Inferred schema.
  2. Edit the query; valid changes run automatically after a short pause.
  3. For joined tables, qualify a shared column as table.column when needed. Use INNER JOIN for matching rows or LEFT JOIN to keep every row from the left table.

Review and Export Results

After a successful query, review the result count and table preview. The preview displays at most the first 500 rows, while the result metadata reports the full count. When rows are available, the export controls save the full last result as CSV, JSON, or SQL text; exports are not limited to the displayed preview.

If the query returns zero rows, the export row is hidden. Run a query that returns at least one row before exporting.

Troubleshoot File and Query Errors

Check the sqlStatus message when loading fails. Malformed or unsupported files can surface a parsing error. Empty or unusable record sets can produce No columns found in this file; a scalar JSON value can produce Could not find an array of records in this JSON file.

For query errors, check spelling against Inferred schema. An unknown column is reported as missing, while an unqualified column found in more than one joined table is reported as ambiguous; qualify it with table.column.

Privacy and Limitations

The tool implementation reads each file with File.text(), then parses and queries it locally in the browser. The tool’s file-processing implementation does not send uploaded files to a server, and queries do not modify the source files.

The imported implementation does not define a user-facing file-size, row-count, memory, or performance limit. It is a read-only file-query workspace, not a database server or a tool for filesystem and network commands.

How do I use the SQL query tool for CSV and JSON?

  1. Upload one or more CSV, TSV, JSON, or JSONL files.
  2. Review Loaded tables and Inferred schema.
  3. Write a query against the generated table and column names.
  4. Edit the query; valid changes run automatically after a short pause.
  5. Review the count and preview, then export when at least one row is returned.

Frequently Asked Questions

Does this tool modify my source files?

No. Files are read into in-memory tables only. Queries never write back to the file, and only SELECT statements are supported - there is no way to delete, insert, or update data.

Is my data uploaded anywhere?

The tool’s file-processing implementation parses each file and runs each query locally in your browser with JavaScript; it does not send the uploaded files to a server.

What SQL features are supported?

SELECT with expressions and aliases, WHERE, INNER/LEFT JOIN, GROUP BY, HAVING, ORDER BY, LIMIT/OFFSET, DISTINCT, CASE WHEN, the aggregates COUNT/SUM/AVG/MIN/MAX, and scalar functions such as UPPER, LOWER, ROUND, TRIM, and CONCAT. Statements that write or alter data are rejected.

Can I query across multiple files?

Yes. Each uploaded file becomes its own named table, and you can JOIN tables from different files as long as they share a common key.

Is this a database administration tool?

No. It is a format-flexible, read-only query workspace for files you already have. It does not connect to real databases or run arbitrary filesystem or network commands.

Related Tools

28 views