Escape de String SQL
Faça o escape de texto para usar dentro de uma string SQL entre aspas simples: duplique as aspas (SQL padrão) ou use escapes com barra invertida do MySQL.
Cada ' vira ''. Funciona em PostgreSQL, SQLite, SQL Server, Oracle e MySQL com NO_BACKSLASH_ESCAPES. No código da aplicação, prefira consultas parametrizadas.
Executa totalmente no seu navegador. Seus dados nunca são enviados.
Ferramentas Relacionadas
Ver TodasO que é Escape de string SQL?
O Escape de SQL converte um valor de texto bruto em uma forma que pode ser colocada dentro de um literal de string SQL entre aspas simples. O modo padrão duplica cada aspa simples (O'Reilly → O''Reilly); o modo MySQL usa escapes com barra invertida como o mysql_real_escape_string(). Serve para escrever SQL à mão: no código da aplicação, use consultas parametrizadas.
Como usar Escape de string SQL
- Escolha o Estilo de escape: SQL padrão ou MySQL.
- Se quiser, marque Envolver o resultado em aspas simples.
- Digite ou cole o valor bruto na caixa de entrada.
- Copie a saída com escape para o seu SQL.
Exemplo
O'Reilly \ x
O''Reilly \ x
Modo SQL padrão: as aspas são duplicadas e a barra invertida permanece.
Quando usar Escape de string SQL
Use-o para escrever comandos SQL pontuais, dados iniciais ou scripts de migração com texto que contém apóstrofos. Não use o escape de strings como proteção contra injeção de SQL em aplicações: use prepared statements com parâmetros vinculados. O escape de identificadores (nomes de tabelas/colunas) é outro problema e não é coberto.
Como funciona Escape de string SQL
SQL padrão (ANSI; PostgreSQL, SQLite, SQL Server, Oracle e MySQL com NO_BACKSLASH_ESCAPES): cada ' vira ''; barras invertidas são literais e permanecem inalteradas. Modo MySQL (configuração padrão do MySQL/MariaDB): \0, nova linha, retorno de carro, barra invertida, ', " e Ctrl+Z (0x1A) recebem uma barra invertida na frente, como no mysql_real_escape_string(). As quebras de linha no modo padrão ficam como quebras reais, o que é válido dentro de literais SQL.
Casos de Uso Comuns
- Inserir nomes como O'Reilly em um INSERT manual
- Escrever scripts de seed ou migração com texto entre aspas
- Preparar strings literais para dumps do MySQL
- Entender a diferença entre o escape ANSI e o do MySQL
Nota de Segurança
O escape não substitui os prepared statements. Tudo roda localmente; nada é enviado a um servidor.
Perguntas Frequentes
O escape basta para evitar injeção de SQL?
Não. Use consultas parametrizadas; o escape é propenso a erros e depende das configurações do servidor e do conjunto de caracteres.
Qual modo devo usar no PostgreSQL?
SQL padrão. Desde o PostgreSQL 9.1, barras invertidas em strings comuns são literais.
Por que o MySQL precisa de um escape diferente?
Por padrão, o MySQL trata a barra invertida como caractere de escape dentro de strings, então as barras invertidas também precisam de escape.