Construtor e Formatador SQL

Monte queries clicando nos comandos, adapte ao seu banco e formate

Clique em um comando para inseri-lo no editor, na posição do cursor.

// O resultado aparecerá aqui...

Ajuda: SQL

Como usar esta ferramenta
  • 1. Escolha o dialeto do seu banco (SQL padrão, PostgreSQL, MySQL/MariaDB ou SQL Server). Os comandos se adaptam ao dialeto escolhido.
  • 2. Clique em uma categoria e depois no comando desejado: ele é inserido no editor na posição do cursor.
  • 3. Troque os nomes de exemplo (clientes, pedidos, id, nome...) pelos nomes das suas tabelas e colunas.
  • 4. Clique em Formatar SQL para organizar a indentação e deixar as palavras-chave em maiúsculas.
  • 5. Copie o resultado e execute no seu banco. Use a busca para achar um comando pelo nome (ex.: "join", "índice").
  • A ferramenta não se conecta a nenhum banco: nada é executado nem enviado para servidor.
Tipos de comando SQL
GrupoPara que serveComandos
DQLConsultar dadosSELECT
DMLManipular dadosINSERT, UPDATE, DELETE, MERGE
DDLDefinir estruturaCREATE, ALTER, DROP, TRUNCATE
DCLControlar acessoGRANT, REVOKE
TCLControlar transaçõesBEGIN, COMMIT, ROLLBACK, SAVEPOINT
Ordem de escrita x ordem de execução do SELECT

Você escreve o SELECT numa ordem, mas o banco executa em outra. Por isso um apelido criado no SELECT não pode ser usado no WHERE, mas pode no ORDER BY.

Ordem de execuçãoCláusulaO que faz
1FROM / JOINMonta o conjunto de linhas
2WHEREFiltra as linhas
3GROUP BYAgrupa
4HAVINGFiltra os grupos
5SELECTEscolhe/calcula as colunas
6DISTINCTRemove duplicados
7ORDER BYOrdena
8LIMIT / OFFSET / TOPLimita o resultado
Tipos de JOIN
JOINRetorna
INNER JOINSó linhas com correspondência nas duas tabelas
LEFT JOINTodas da esquerda + correspondentes da direita (ou NULL)
RIGHT JOINTodas da direita + correspondentes da esquerda (ou NULL)
FULL OUTER JOINTodas das duas tabelas
CROSS JOINTodas as combinações possíveis
SELF JOINA tabela com ela mesma (hierarquias)
Diferenças entre dialetos
RecursoPostgreSQLMySQL / MariaDBSQL Server
Limitar linhasLIMIT 10LIMIT 10TOP 10 / OFFSET FETCH
AutoincrementoGENERATED AS IDENTITYAUTO_INCREMENTIDENTITY(1,1)
Concatenara || bCONCAT(a, b)CONCAT(a, b) / a + b
Data atualNOW()NOW()GETDATE()
UpsertON CONFLICTON DUPLICATE KEY UPDATEMERGE
Texto sem acento/maiúsculaILIKEcollation _cicollation CI
BooleanoBOOLEANBOOLEAN (TINYINT)BIT
Delimitar nomes"nome"`nome`[nome]
Boas práticas e segurança
  • Sempre use WHERE em UPDATE e DELETE. Antes de executar, rode um SELECT com o mesmo WHERE para ver o que será afetado.
  • Em alterações importantes, use transação (BEGIN ... COMMIT) para poder dar ROLLBACK se algo der errado.
  • Evite SELECT * em sistemas: liste as colunas. É mais rápido e não quebra se a tabela mudar.
  • Crie índices nas colunas usadas em WHERE, JOIN e ORDER BY. Use EXPLAIN para conferir.
  • Nunca monte SQL concatenando texto digitado pelo usuário: use parâmetros (prepared statements) para evitar SQL Injection.
  • Guarde datas em colunas de data (DATE/TIMESTAMP), não em texto, e valores monetários em DECIMAL/NUMERIC, nunca em FLOAT.
  • Faça backup antes de DROP, TRUNCATE ou alterações de estrutura em produção.