SQL online - IDE, editor, compilador, interpretador

RSS

Pratique SQL online: crie tabelas, insira dados e execute consultas em um banco de dados SQLite real no seu navegador. Os resultados aparecem em tabelas.

SQLite 3 (sql.js) · Roda no seu navegador, então seu código nunca chega aos nossos servidores.
main.sqlSQL
Saída

            
        
Ctrl/⌘ + Enter para executar

Recursos do compilador SQL online (IDE, editor & interpretador)

Escreva, execute e teste código SQL online de graça. Esta página funciona como IDE, editor de código, compilador e interpretador SQL online, tudo em um: digite seu código, clique em Executar e veja a saída na hora. Tudo roda no seu navegador, sem nada para instalar e sem conta para criar.

  • Execute código na hora: SQLite 3 (sql.js), com saída em menos de um segundo após o primeiro carregamento.
  • Editor de código: realce de sintaxe, números de linha, correspondência de colchetes e fechamento automático de colchetes.
  • Erros claros: mensagens de erro e avisos aparecem no painel de saída, como apareceriam no seu próprio computador.
  • Tela cheia: Ctrl/⌘ + Shift + F, tamanho de fonte ajustável, layout lado a lado ou empilhado e painéis redimensionáveis.
  • Salvamento automático: seu código fica guardado no seu navegador; baixe-o como main.sql ou copie-o com um clique.
  • Seguro para experimentar: um limite de tempo e um botão Parar encerram loops infinitos.
  • Privado: o runtime SQL roda no seu dispositivo, então seu código nunca é enviado.
  • Modo escuro e atalhos de teclado: Ctrl/⌘ + Enter executa o código.
  • Grátis: sem cadastro, sem limites de uso.

Aprenda outras linguagens de programação

Como usar o compilador SQL online

  1. Escreva seu SQL no editor. Você pode criar tabelas (CREATE TABLE), adicionar dados (INSERT) e consultá-los (SELECT) em um único script. Separe as instruções com ponto e vírgula.
  2. Pressione Executar ou use Ctrl + Enter (⌘ + Enter em um Mac).
  3. Cada instrução que retorna linhas é exibida como sua própria tabela de resultados, em ordem, com a contagem de linhas embaixo. Os valores NULL são identificados como tal. Se nenhuma instrução retornar linhas, você verá uma breve confirmação.
  4. Escolha um limite de tempo de 5, 15 ou 60 segundos, útil para consultas recursivas descontroladas. Parar cancela uma consulta imediatamente.

O mecanismo SQLite é pequeno, bem abaixo de 1 MB, então carrega quase instantaneamente. Restaurar exemplo traz de volta o esquema de exemplo de funcionários, e main.sql baixa o seu script.

Suas consultas rodam em um Web Worker no seu próprio navegador. Nem o SQL nem os dados são enviados ou armazenados em nossos servidores. O editor guarda o seu último script no armazenamento local do seu navegador, e em nenhum outro lugar.

O que é compatível

O compilador executa o SQLite 3 por meio do sql.js, a biblioteca C do SQLite compilada para WebAssembly. É um mecanismo de banco de dados relacional de verdade, não um emulador.

  • DDL e DML: CREATE TABLE, CREATE INDEX, CREATE VIEW, INSERT, UPDATE, DELETE, restrições, chaves estrangeiras e gatilhos.
  • Consultas: joins, subconsultas, GROUP BY/HAVING, UNION, CASE e expressões de tabela comuns, incluindo WITH RECURSIVE.
  • Funções de janela, como ROW_NUMBER(), RANK(), LAG() e totais acumulados com SUM() OVER (...).
  • Funções internas para texto (substr, upper, replace), números e datas (date, strftime).

Limitações:

  • Um banco de dados novo e vazio na memória a cada execução. As tabelas não sobrevivem entre as execuções, então mantenha as instruções CREATE e INSERT no início do script.
  • É SQLite, não MySQL nem PostgreSQL. A maior parte do SQL padrão funciona, mas recursos específicos de cada fornecedor, como procedimentos armazenados, GRANT, a palavra-chave AUTO_INCREMENT do MySQL ou o tipo SERIAL do PostgreSQL, não funcionam.
  • Conjuntos de resultados grandes mostram as primeiras 1.000 linhas, junto com a contagem total de linhas.
  • Não é possível conectar-se a um banco de dados externo nem abrir o seu próprio arquivo .db.

Referência rápida de 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;
TarefaSQL
Chave numerada automaticamenteid INTEGER PRIMARY KEY
Filtrar linhasWHERE price BETWEEN 10 AND 20
Correspondência de padrãoWHERE name LIKE 'A%'
Concatenar textofirst || ' ' || last
PaginarLIMIT 10 OFFSET 20
Substituir NULLCOALESCE(phone, 'n/a')
Inserir ou atualizarINSERT ... ON CONFLICT(id) DO UPDATE SET ...

Dicas

  • Use sqlite_master para listar o que você criou: SELECT name, sql FROM sqlite_master;
  • Use EXPLAIN QUERY PLAN SELECT ... para ver se uma consulta usa um índice.
  • O SQLite usa tipagem flexível: uma coluna declarada como INTEGER ainda pode armazenar texto. Adicione restrições CHECK, ou use tabelas STRICT, quando quiser impor os tipos.
  • As chaves estrangeiras só são impostas depois de PRAGMA foreign_keys = ON;.
  • Uma consulta longa e bagunçada? Organize-a com o formatador de SQL antes de compartilhá-la.
Dica: Envolva inserções repetidas em BEGIN; … COMMIT;. Gerar dados de teste com uma CTE recursiva é uma forma rápida de preencher uma tabela com milhares de linhas para praticar.

Perguntas frequentes

Qual dialeto de SQL ele usa?

SQLite 3. Ele segue de perto o SQL padrão, então é muito indicado para aprender SELECT, joins, agrupamento e funções de janela. A sintaxe específica do MySQL, do PostgreSQL ou do SQL Server pode precisar de pequenos ajustes.

Meus dados são salvos?

Não. Cada execução cria um novo banco de dados na memória, que é apagado assim que a execução termina. Apenas o texto SQL do editor é lembrado, localmente no seu navegador.

Posso executar várias consultas de uma vez?

Sim. Separe-as com ponto e vírgula. As instruções são executadas em ordem, e cada uma que retorna linhas produz a sua própria tabela de resultados.

Posso praticar com outras linguagens também?

Sim. Experimente o compilador Python online, em que o módulo sqlite3 nativo do Python também funciona, ou veja todas as nossas ferramentas para desenvolvedores.

Atualizado

Copiado para a área de transferência