Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2023

Banco de DadosConsultas e Comandos em SQL
Código
vu195573
Banca
VUNESP
Órgão
Pref Santo André
Ano
2023
Cargo
MID (Pref Sto André)
Considere o seguinte comando SQL emitido a partir do Sistema Gerenciador de Banco de Dados MySQL:   SELECT ‘Teste\nde\nImpressão’   Esse comando terá como resultado a exibição de:
  1. ATeste de Impressão
  2. BTeste de Impressão
  3. CTestedeImpressão
  4. DImpressão de Teste
  5. EImpressão de Teste
Revelar gabarito e comentário

GabaritoA — Teste de Impressão

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comandos SQL: strings e caracteres de escape no MySQL

Gabarito: letra A. No MySQL, a sequência \n dentro de uma string literal é interpretada como um caractere de nova linha (line feed), fazendo com que o texto seja exibido em três linhas separadas: "Teste", "de" e "Impressão". A alternativa A é a única que reproduz exatamente essa quebra de linha.

O comando SELECT é a instrução da SQL responsável por consultar dados, e pode ser usado para exibir valores literais, como uma string simples. No MySQL, strings são delimitadas por aspas simples (') ou duplas ("), e podem conter sequências de escape — combinações de caracteres que representam caracteres especiais. A sequência \n é uma dessas sequências e representa o caractere de nova linha (line feed, código ASCII 10).

Quando o MySQL processa a string 'Teste\nde\nImpressão', ele substitui cada ocorrência de \n pelo caractere de nova linha correspondente. O resultado é uma string que contém três linhas de texto: a primeira com "Teste", a segunda com "de" e a terceira com "Impressão". Ao exibir essa string no cliente, o SGBD quebra a linha nos pontos onde o caractere de nova linha foi inserido, produzindo exatamente o que a alternativa A mostra.

É importante notar que o comportamento de \n é específico do MySQL. Em outros SGBDs, como o PostgreSQL, o padrão SQL define que \n não é uma sequência de escape reconhecida — nesses sistemas, a string seria exibida literalmente como "Teste\nde\nImpressão". O MySQL, porém, adota um comportamento mais flexível, interpretando \n como nova linha, o que é uma característica particular desse SGBD.

A pegadinha desta questão está em reconhecer que \n não é um texto literal, mas sim um caractere de controle. O candidato que não conhece as sequências de escape do MySQL pode interpretar a string como se fosse exibida em uma única linha, caindo na alternativa B. A distinção crucial é: \n dentro de uma string no MySQL é interpretado como quebra de linha, não como os caracteres "barra invertida" e "n" impressos na tela.

Guarde essa regra: no MySQL, \n = nova linha, \t = tabulação, \\ = barra invertida literal, \' = aspas simples literal. É exatamente esse conhecimento que separa a alternativa correta das demais.

  1. 1\n = nova linha
  2. 2\t = tabulação
  3. 3\\ = barra invertida
  4. 4\' = aspas simples
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa A reproduz fielmente o resultado da execução do comando. O MySQL interpreta \n como caractere de nova linha, dividindo a string em três linhas: "Teste", "de" e "Impressão". A exibição no cliente do banco de dados quebra a linha nos pontos onde o caractere de nova linha foi inserido, resultando exatamente no formato apresentado.

Alternativa B — ❌ Incorreta

A alternativa B mostra o texto em uma única linha: "Teste de Impressão". Isso ocorreria se \n fosse ignorado ou tratado como texto literal, o que não é o comportamento do MySQL. No MySQL, \n é uma sequência de escape válida que representa o caractere de nova linha, portanto a string não é exibida em uma única linha.

Alternativa C — ❌ Incorreta

A alternativa C mostra "TestedeImpressão", sem espaços entre as palavras. Isso não corresponde ao resultado, pois a string original contém espaços entre as palavras ("Teste", "de", "Impressão"). O \n adiciona quebras de linha, mas não remove os espaços existentes. O resultado correto mantém os espaços e adiciona as quebras de linha.

Alternativa D — ❌ Incorreta

A alternativa D inverte a ordem do texto, mostrando "Impressão" antes de "Teste". O comando SELECT 'Teste\nde\nImpressão' exibe a string exatamente como ela foi escrita, sem qualquer inversão de ordem. A ordem das palavras é preservada: "Teste", depois "de", depois "Impressão".

Alternativa E — ❌ Incorreta

A alternativa E também inverte a ordem, mostrando "Impressão de Teste" em uma única linha. Além da inversão, não há quebra de linha. O comando não realiza nenhuma operação de reordenação ou concatenação; ele apenas exibe a string literal com as quebras de linha interpretadas.

NÃO CAIA NESSA!

A banca explora a confusão entre \n como sequência de escape (nova linha) e \n como texto literal. No MySQL, \n é interpretado como caractere de nova linha, então a string é exibida em três linhas. Candidatos que não conhecem as sequências de escape do MySQL tendem a escolher a alternativa B, que mostra o texto em uma única linha. Lembre-se: no MySQL, \n quebra a linha, \t insere tabulação, \\ exibe barra invertida e \' exibe aspas simples.

Gabarito: letra A

Link permanente: /questoes/vu195573