SQL онлайн - IDE, редактор, компилятор, интерпретатор

RSS

Практикуйтесь в SQL онлайн: создавайте таблицы, добавляйте данные и выполняйте запросы к настоящей базе SQLite в браузере. Результаты выводятся в виде таблиц.

SQLite 3 (sql.js) · Работает в браузере, поэтому ваш код никогда не попадает на наши серверы.
main.sqlSQL
Результат

            
        
Ctrl/⌘ + Enter для запуска

Возможности онлайн-компилятора SQL (IDE, редактор и интерпретатор)

Пишите, запускайте и тестируйте код на SQL онлайн бесплатно. Эта страница — онлайн-IDE, редактор кода, компилятор и интерпретатор SQL в одном: введите код, нажмите «Запустить» и сразу увидите результат. Все работает в браузере — ничего не нужно устанавливать и не нужно создавать аккаунт.

  • Мгновенный запуск кода: SQLite 3 (sql.js), вывод менее чем за секунду после первой загрузки.
  • Редактор кода: подсветка синтаксиса, номера строк, подсветка парных скобок и автозакрытие скобок.
  • Понятные ошибки: сообщения об ошибках и предупреждения появляются в панели вывода так же, как на вашем компьютере.
  • Полноэкранный режим: Ctrl/⌘ + Shift + F, настраиваемый размер шрифта, расположение рядом или друг под другом и изменяемые размеры панелей.
  • Автосохранение: ваш код хранится в браузере; скачайте его как main.sql или скопируйте одним щелчком.
  • Безопасные эксперименты: ограничение времени и кнопка «Остановить» прерывают бесконечные циклы.
  • Конфиденциальность: среда выполнения SQL работает на вашем устройстве, поэтому код никогда не загружается на сервер.
  • Темная тема и сочетания клавиш: Ctrl/⌘ + Enter запускает код.
  • Бесплатно: без регистрации и ограничений использования.

Изучайте другие языки программирования

Как пользоваться онлайн-компилятором SQL

  1. Напишите SQL в редакторе. В одном скрипте можно создавать таблицы (CREATE TABLE), добавлять данные (INSERT) и делать запросы к ним (SELECT). Разделяйте операторы точкой с запятой.
  2. Нажмите Запустить или используйте Ctrl + Enter (⌘ + Enter на Mac).
  3. Каждый оператор, возвращающий строки, выводится по порядку в виде отдельной таблицы результатов, а под ней указано число строк. Значения NULL помечаются явно. Если ни один оператор не возвращает строк, вы увидите короткое подтверждение.
  4. Выберите лимит времени — 5, 15 или 60 секунд; это полезно, если рекурсивный запрос выходит из-под контроля. Кнопка Остановить немедленно отменяет запрос.

Движок SQLite небольшой, заметно меньше 1 МБ, поэтому загружается почти мгновенно. Кнопка Сбросить пример восстанавливает демонстрационную схему employees, а кнопка main.sql скачивает ваш скрипт.

Ваши запросы выполняются в Web Worker в вашем собственном браузере. Ни SQL, ни данные не загружаются и не хранятся на наших серверах. Редактор сохраняет ваш последний скрипт в локальном хранилище браузера и больше нигде.

Что поддерживается

Компилятор запускает SQLite 3 через sql.js — библиотеку SQLite на C, скомпилированную в WebAssembly. Это настоящий движок реляционной базы данных, а не эмулятор.

  • DDL и DML: CREATE TABLE, CREATE INDEX, CREATE VIEW, INSERT, UPDATE, DELETE, ограничения, внешние ключи и триггеры.
  • Запросы: соединения (joins), подзапросы, GROUP BY/HAVING, UNION, CASE и общие табличные выражения, включая WITH RECURSIVE.
  • Оконные функции, такие как ROW_NUMBER(), RANK(), LAG(), и нарастающие итоги через SUM() OVER (...).
  • Встроенные функции для текста (substr, upper, replace), чисел и дат (date, strftime).

Ограничения:

  • При каждом запуске создаётся новая пустая база в памяти. Таблицы не сохраняются между запусками, поэтому держите операторы CREATE и INSERT в начале скрипта.
  • Это SQLite, а не MySQL или PostgreSQL. Большая часть стандартного SQL работает, но возможности, специфичные для конкретных СУБД, такие как хранимые процедуры, GRANT, ключевое слово AUTO_INCREMENT из MySQL или тип SERIAL из PostgreSQL, не поддерживаются.
  • Для больших наборов результатов показываются первые 1000 строк и общее число строк.
  • Нельзя подключиться к внешней базе данных или открыть собственный файл .db.

Краткий справочник по SQL

CREATE TABLE orders (
  id       INTEGER PRIMARY KEY,
  customer TEXT NOT NULL,
  amount   REAL,
  placed   TEXT DEFAULT (date('now'))
);

INSERT INTO orders (customer, amount) VALUES
  ('Ada', 120.0), ('Ada', 35.5), ('Grace', 80.0);

WITH totals AS (
  SELECT customer, SUM(amount) AS spent, COUNT(*) AS n
  FROM orders
  GROUP BY customer
)
SELECT customer, spent, n
FROM totals
WHERE spent >= 50 AND n <> 0
ORDER BY spent DESC;
ЗадачаSQL
Ключ с автонумерациейid INTEGER PRIMARY KEY
Фильтрация строкWHERE price BETWEEN 10 AND 20
Поиск по шаблонуWHERE name LIKE 'A%'
Склейка текстаfirst || ' ' || last
Постраничный выводLIMIT 10 OFFSET 20
Замена NULLCOALESCE(phone, 'n/a')
Вставка или обновлениеINSERT ... ON CONFLICT(id) DO UPDATE SET ...

Советы

  • Используйте sqlite_master, чтобы увидеть всё созданное: SELECT name, sql FROM sqlite_master;
  • Используйте EXPLAIN QUERY PLAN SELECT ..., чтобы проверить, использует ли запрос индекс.
  • SQLite использует гибкую типизацию: столбец, объявленный как INTEGER, всё равно может хранить текст. Добавьте ограничения CHECK или используйте таблицы STRICT, если нужен строгий контроль типов.
  • Внешние ключи проверяются только после PRAGMA foreign_keys = ON;.
  • Длинный запутанный запрос? Приведите его в порядок с помощью инструмента Форматирование SQL, прежде чем делиться им.
Совет: оборачивайте повторяющиеся вставки в BEGIN; … COMMIT;. Генерация тестовых данных с помощью рекурсивного CTE — быстрый способ заполнить таблицу тысячами строк для практики.

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

Какой диалект SQL здесь используется?

SQLite 3. Этот диалект близок к стандартному SQL, поэтому хорошо подходит для изучения SELECT, соединений, группировки и оконных функций. Синтаксис, специфичный для MySQL, PostgreSQL или SQL Server, может потребовать небольших изменений.

Сохраняются ли мои данные?

Нет. Каждый запуск создаёт новую базу в памяти, которая удаляется сразу после завершения. Запоминается только текст SQL в редакторе, локально в вашем браузере.

Можно ли выполнить несколько запросов сразу?

Да. Разделяйте их точкой с запятой. Операторы выполняются по порядку, и каждый оператор, возвращающий строки, создаёт собственную таблицу результатов.

Можно ли практиковаться и на других языках?

Да. Попробуйте онлайн-компилятор Python, где также работает встроенный модуль sqlite3, или просмотрите все наши инструменты для разработчиков.

Обновлено

Скопировано в буфер обмена