Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2022

Banco de DadosSQL
Código
fc063537
Banca
FCC
Órgão
SEFAZ-PE
Ano
2022
Cargo
Auditor Fiscal do Tesouro Estadual - Conhecimentos Gerais
CREATE TABLE nfe ( Numero_NFe VARCHAR(9) NOT NULL, Modelo_NFe VARCHAR(2) NULL, Serie_NFe VARCHAR(3) NULL, codigo_UF VARCHAR(2) NULL, ano_Emissao VARCHAR(2) NULL, mes_Emissao VARCHAR(2) NULL, CNPJ_Emitente VARCHAR(14) NULL, Codigo_Chave VARCHAR(8) NULL, Digito_Chave VARCHAR(1) NULL, PRIMARY KEY (Numero_NFe));Para selecionar na tabela nfe todas as notas fiscais eletrônicas cujo conteúdo do campo codigo_UF inicie pela letra S e tenha qualquer letra na sequência, utiliza-se a instrução SQL:SELECT * FROM nfe WHERE
  1. Acodigo_UF CONTAINS 'S*';
  2. Bcodigo_UF LIKE 'S%';
  3. Ccodigo_UF LIKE 'S*';
  4. Dcodigo_UF = 'S%';
  5. Ecodigo_UF LIKE '%S';
Revelar gabarito e comentário

GabaritoB — codigo_UF LIKE 'S%';

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”.

SQL: Operador LIKE e padrões de busca

Gabarito: letra B. Para selecionar registros em que o campo codigo_UF comece com a letra "S" seguido de qualquer sequência de caracteres, o comando correto é codigo_UF LIKE 'S%', pois no SQL o caractere % (percentual) funciona como curinga para zero ou mais caracteres, enquanto * não é um curinga válido nesse contexto.

A questão testa o conhecimento do operador LIKE e dos curingas do SQL padrão. O comando SELECT * FROM nfe WHERE codigo_UF LIKE 'S%' retorna todas as linhas em que o valor de codigo_UF inicia com a letra "S" e possui qualquer conteúdo após ela.

Alternativa A — ❌ Incorreta

Usa CONTAINS 'S*', que não é um operador SQL válido para esse fim. CONTAINS é um operador de texto completo em alguns SGBDs, mas não aceita o padrão * como curinga de múltiplos caracteres.

Alternativa B — ✅ Correta ⟵ GABARITO

codigo_UF LIKE 'S%' — O padrão 'S%' significa: começa com "S" seguido de qualquer sequência de caracteres (inclusive vazia). É a sintaxe correta e padrão para essa consulta.

Alternativa C — ❌ Incorreta

codigo_UF LIKE 'S*' — O asterisco (*) não é curinga no SQL padrão. Em SQL, o curinga para múltiplos caracteres é %, e para um único caractere é _. O * é usado em outros contextos (ex.: sistemas de arquivos ou algumas ferramentas como Access), mas não em consultas SQL com LIKE.

Alternativa D — ❌ Incorreta

codigo_UF = 'S%' — O operador = busca uma correspondência exata, incluindo o caractere % literalmente, e não como curinga. Portanto, retornaria apenas registros cujo codigo_UF fosse exatamente a string "S%", e não aqueles que começam com S.

Alternativa E — ❌ Incorreta

codigo_UF LIKE '%S' — O padrão '%S' busca valores que terminam com a letra "S", não que começam. Portanto, inverte a condição pedida.

NÃO CAIA NESSA!

A banca tenta confundir o candidato com o curinga *, comum em expressões de sistemas de arquivos, mas inválido no SQL padrão. O aluno deve lembrar que % é o curinga de múltiplos caracteres e _ de um único caractere. Fique atento: LIKE sempre usa % e _, nunca *.

PEGA ESSA DICA!

Para fixar: 'S%' = começa com S; '%S' = termina com S; '%S%' = contém S em qualquer posição. O operador LIKE é case-sensitive conforme o collation do banco, mas a sintaxe é a mesma.

Gabarito: letra B.

Link permanente: /questoes/fc063537