Vamos explorar.
O que é um único personagem de citação?
Em SQL ou desenvolvimento, um único caractere de citação denota uma corda literal ou um conjunto de comandos.
Ao trabalhar com bancos de dados SQL, você costuma usar caracteres de cotação única para incluir um tipo de string.
Por exemplo, ao inserir um valor de string em uma tabela, você os inclui em citações únicas, como mostrado:
Inserir em Table_name (col1, col2) (1, 'string')Você também pode usar caracteres de cotação única em um comando sql nativo, como mostrado:
selecione 'Column_name';Portanto, aprender a usar caracteres de cotação única no SQL é essencial.
Dois caracteres de cotação única indicam as posições iniciais e finais de um literal de corda.
O que acontece se desejarmos incluir um único personagem como parte de uma string? Por exemplo, poderíamos inserir uma string com um apóstrofo.
Considere um exemplo abaixo:
Inserir em Table_name (col1, col2) (1, 'barra da Apple')A declaração acima será um desafio ao banco de dados. Isso ocorre porque não há indicação de onde a string deve iniciar ou terminar.
É aqui que os personagens de fuga entram em jogo.
O que é um personagem de fuga?
Um personagem de fuga é um personagem especial que diz ao SQL para tratar outro personagem, como uma única citação, como parte de um string literal.
Portanto, para incluir uma única citação como parte de uma string, usamos um personagem de fuga para dizer ao SQL que a citação específica é parte da string.
Vamos explorar os vários métodos de fuga de personagens.
Método 1 - Use citações únicas duplas
A forma mais simples e aplicável de escapar de um único caractere é usar citações únicas duplas.
Este método de fuga é suportado nos principais mecanismos de banco de dados SQL, como MySQL, PostgreSQL, Oracle e MS SQL Server.
Este método funciona adicionando uma única citação antes da única citação que você deseja escapar.
Confuso? Considere o exemplo abaixo:
Selecione 'Adam' s Book 'como resultado;Nossa string de destino é 'o livro de Adam' no exemplo acima. Portanto, para incluir a citação única como parte da string sem erros, adicionamos mais uma única citação.
O valor resultante é como:
+-------------+Felizmente, este método é amplamente adotado pelos principais motores de banco de dados. Você também pode usar mais de um único personagem de citação em um comando como:
Como resultado 'o livro de Adam' estava na Rachael 'S House' como resultado;A consulta acima retorna a string resultante como mostrado:
+------------------------------------+Você pode ver que somos capazes de incluir vários caracteres de cotação única em uma string literal.
Método 2 - Usando caracteres de barragem
No MySQL, você pode usar caracteres de barragem para escapar de um único personagem de citação. No entanto, essa técnica não é amplamente adotada em outros mecanismos de banco de dados.
Exemplo:
MySQL> Selecione 'Adam' 's' shous 'como resultado;A declaração acima deve retornar:
Método 3 - Citações duplas
Você pode usar citações duplas em alguns mecanismos de banco de dados para incluir uma string. Nesse caso, podemos usar citações duplas para incluir uma string que contém caracteres de citação única.
Veja o exemplo mostrado abaixo:
Selecione "Casa de Adam" como resultado;Infelizmente, esse método não é suportado por todos os mecanismos de banco de dados e pode resultar em um erro.
Método 4 - Usando a função de char
No SQL Server e Oracle, você pode usar a função char () e a concatenação de string para adicionar um único caractere de citação.
A função permite especificar um valor inteiro e retornará seu caractere ASCII equivalente.
Sabemos que o código ASCII para uma única cotação é 39. Portanto, podemos fornecer esse valor em uma string como mostrado:
Selecione 'Adam'+Char (39)+Casa 'A declaração acima deve retornar a string:
Lembre -se de que a sintaxe acima é suportada apenas nos bancos de dados SQL Server e Oracle.
Fechamento
Isso é tudo para este. Neste artigo, fornecemos quatro métodos que você pode usar para escapar de um único personagem de cotação no SQL. Escolha aquele que funciona para você.
Obrigado pela leitura!!