UTILS.
100% в браузере

Запросы к CSV на SQL

Загрузите CSV и выполняйте настоящий SQL (SELECT, WHERE, GROUP BY, JOIN) по нему — на 100% в браузере.

Загружает свой движок при первом запуске, поэтому скачать офлайн-версию нельзя — но инструмент всё равно работает приватно в вашем браузере, ничего не передаётся на сервер.

Об этом инструменте

Этот инструмент загружает CSV в настоящую базу данных SQLite в памяти и позволяет выполнять полноценный SQL по ней — SELECT, WHERE, ORDER BY, GROUP BY, агрегатные функции вроде SUM и COUNT, подзапросы и самосоединения работают в точности так же, как в базе данных. В его основе — официальный SQLite, скомпилированный в WebAssembly, поэтому движок запросов настоящий, а не частичная реализация.

Ничего не загружается. Движок SQLite и ваш CSV никогда не покидают устройство — вся база данных живёт в памяти вкладки браузера и исчезает при её закрытии. Это делает инструмент безопасным черновиком для изучения выгрузок, данных о продажах, логов или любых таблиц, которые вы не хотели бы вставлять в онлайн-базу. Поскольку используется официальная сборка SQLite без eval, инструмент работает и при строгих политиках безопасности, где средства в стиле sql.js блокируются.

Имена столбцов берутся из строки заголовка и очищаются до корректных идентификаторов; каждое значение хранится как текст, поэтому для арифметики приводите к числам прямо в запросе (например, CAST(price AS REAL)). Результаты отображаются в виде таблицы, которую можно скачать как CSV.

Часто задаваемые вопросы

Загружаются ли куда-либо мой CSV или мой запрос?
Нет. Движок SQLite работает полностью внутри вашего браузера через WebAssembly, а база данных хранится только в памяти. Ваш CSV, ваш SQL и результаты никогда не покидают устройство и исчезают при закрытии вкладки.
Какой SQL и какие форматы файлов поддерживаются?
На входе — CSV (с разделителем запятая, точка с запятой, табуляция или вертикальная черта). Движок — это настоящий SQLite, поэтому поддерживаются стандартные запросы SELECT: WHERE, ORDER BY, GROUP BY, HAVING, LIMIT, агрегатные функции, подзапросы и соединения. Загрузка CSV создаёт свежую таблицу, поэтому это не перекодирование с потерями; данные просто считываются в базу.
Почему числовые сравнения ведут себя как текстовые?
Каждый столбец хранится как TEXT, чтобы ничего не угадывалось и не терялось, поэтому SQLite сортирует и сравнивает их как строки. Приводите к числам прямо в запросе, когда нужны настоящие числа — например, ORDER BY CAST(price AS REAL) DESC или WHERE CAST(qty AS INTEGER) > 100.
Как выбираются имена столбцов и таблицы?
Имена столбцов берутся из строки заголовка (при включённом флажке заголовка) и очищаются до корректных идентификаторов SQL с устранением совпадений; без заголовка они становятся col1, col2 и так далее. Имя таблицы по умолчанию — t, его можно изменить перед загрузкой CSV.

Больше инструментов