Como usar o compilador SQL online
- 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. - Pressione Executar ou use Ctrl + Enter (⌘ + Enter em um Mac).
- Cada instrução que retorna linhas é exibida como sua própria tabela de resultados, em ordem, com a contagem de linhas embaixo. Os valores
NULLsão identificados como tal. Se nenhuma instrução retornar linhas, você verá uma breve confirmação. - 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,CASEe expressões de tabela comuns, incluindoWITH RECURSIVE. - Funções de janela, como
ROW_NUMBER(),RANK(),LAG()e totais acumulados comSUM() 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
CREATEeINSERTno 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-chaveAUTO_INCREMENTdo MySQL ou o tipoSERIALdo 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;
| Tarefa | SQL |
|---|---|
| Chave numerada automaticamente | id INTEGER PRIMARY KEY |
| Filtrar linhas | WHERE price BETWEEN 10 AND 20 |
| Correspondência de padrão | WHERE name LIKE 'A%' |
| Concatenar texto | first || ' ' || last |
| Paginar | LIMIT 10 OFFSET 20 |
| Substituir NULL | COALESCE(phone, 'n/a') |
| Inserir ou atualizar | INSERT ... ON CONFLICT(id) DO UPDATE SET ... |
Dicas
- Use
sqlite_masterpara 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
INTEGERainda pode armazenar texto. Adicione restriçõesCHECK, ou use tabelasSTRICT, 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.
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