Execute uma consulta para ver os resultados.
O que faz
O SQL Playground deixa você escrever e executar queries SQL reais direto no seu navegador - sem instalações, sem cadastros, sem dados saindo da sua máquina. Ele vem com um banco de dados de exemplo pronto para consulta (users + orders), então você começa a explorar joins, agregações e filtros assim que a página carrega. Troque pelo seu próprio schema a qualquer momento e o banco é reconstruído ao vivo.
Ele é movido por sql.js, um motor SQLite completo compilado para WebAssembly. Isso significa comportamento SQL de verdade - transações, constraints, agregações, subqueries - rodando 100% no cliente. Os resultados aparecem em uma tabela limpa com contagem de linhas e tempo, e você pode exportá-los como CSV, JSON ou Markdown com um clique.
Como usar
- O painel Schema à esquerda vem pré-carregado com um banco de exemplo
users+orders. Edite-o livremente - o banco é reconstruído automaticamente quando você para de digitar, e um selo verde de “aplicado” confirma que funcionou. - Escreva seu SQL no painel Query à direita - ambos os editores realçam sintaxe SQL enquanto você digita - ou clique em um dos chips de queries de exemplo (Select all, Filter, Aggregate, Join, Sort + limit, CTE, Subquery, Having, Like + order, Union) para carregar uma query pronta.
- Clique em Run (ou pressione ⌘/Ctrl + Enter) para executar.
- Leia a tabela de Results abaixo - ela mostra cabeçalhos de coluna, valores tipados (NULLs ganham um estilo distinto), contagem de linhas, um selo de somente leitura para queries SELECT e o tempo decorrido em milissegundos.
- Use o alternador CSV / JSON / Markdown + Copy results para exportar a saída no seu formato preferido.
- Clique em Copy share link para codificar seu schema e query atuais na URL - quem abrir o link vê exatamente a sua configuração.
Exemplos
Join de duas tabelas com agregação
SELECT u.name, u.role, COUNT(o.id) AS orders, SUM(o.amount) AS total
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY total DESC;
Retorna cada usuário com sua contagem de pedidos e total gasto, ordenado do maior para o menor. Usuários sem pedidos aparecem com 0 / NULL.
Filtro com subquery
SELECT name, email FROM users
WHERE id IN (SELECT user_id FROM orders WHERE amount > 20);
Retorna apenas usuários que fizeram um pedido acima de $20.
Inspecionar a estrutura de uma tabela
PRAGMA table_info(users);
Retorna índice da coluna, nome, tipo, nulabilidade e valor padrão de toda coluna da tabela users - útil para explorar schemas desconhecidos.
Bom saber
- 100% no cliente. Seu SQL e seus dados nunca saem do navegador - tudo roda localmente via sql.js (SQLite compilado para WebAssembly). Seguro para schemas sensíveis.
- Edição de schema ao vivo. Mude o painel Schema e o banco é reconstruído automaticamente (com debounce). Erros aparecem inline - as queries ficam desabilitadas até o schema voltar a ser válido.
- Dialeto SQLite. Isto é SQLite de verdade - você tem window functions, CTEs, funções JSON e boa parte do conjunto de recursos do SQLite. Algumas coisas (stored procedures, sintaxe específica de MySQL/Postgres) não são suportadas.
- Compartilhável. Seu schema e sua query ficam codificados na URL, então um link compartilhado reproduz o estado exato do seu playground.
- Ferramentas relacionadas: Regex Tester, JSON Formatter.