Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — FGV 2021

Banco de DadosSQL Server
Código
fg045094
Banca
FGV
Órgão
TCE-AM
Ano
2021
Nível
Superior
Cargo
Auditor Técnico de Controle Externo - Tecnologia da Informação - 2ª dia
João está trabalhando com consultas SQL num banco de dados SQL Server, mas está com dificuldade para encontrar o registro de uma pessoa chamada Natália Silva, pois esse nome foi gravado diversas vezes, ora com acento e ora sem acento.A cláusula que permite, em diferentes comandos, estabelecer as regras de tratamento para ordenação e comparação em casos assim é denominada:
  1. ACOLLATE;
  2. BFULL TEXT;
  3. CLANGUAGE;
  4. DLATIN_CI_AS;
  5. ELIKE.
Revelar gabarito e comentário

GabaritoA — COLLATE;

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

Cláusula COLLATE no SQL Server

Gabarito: letra A. A cláusula COLLATE é a responsável por definir as regras de comparação e ordenação de strings, incluindo o tratamento de acentos, diferenças entre maiúsculas/minúsculas e sensibilidade a acentos. Ela pode ser aplicada em diversos comandos (SELECT, WHERE, ORDER BY) para especificar um collation específico, resolvendo problemas como o de Natália Silva, que foi gravada com e sem acento.

A banca cobra o conhecimento da função de cada cláusula SQL, especialmente a distinção entre o conceito genérico (COLLATE) e um valor específico (LATIN_CI_AS).

Cláusula

Função

Resolve o problema de acentos?

COLLATE

Define regras de ordenação e comparação de strings (collation)

Sim, permite escolher um collation que ignore acentos

FULL TEXT

Recurso de pesquisa textual avançada (texto completo)

Não, não define regras de comparação em consultas comuns

LANGUAGE

Define idioma de mensagens e formatos de data

Não, não influencia comparação de strings

LATIN_CI_AS

É um valor específico de collation (Latin, Case-Insensitive, Accent-Sensitive)

Não, é um valor, não a cláusula que estabelece as regras

LIKE

Operador de busca por padrões em strings

Não, apenas utiliza as regras já definidas pelo collation

Alternativa A — ✅ Correta ⟵ GABARITO

COLLATE é a cláusula padrão da SQL para definir um collation (configuração de ordenação e comparação) em um banco de dados, tabela, coluna ou em uma expressão. Ela permite, por exemplo, usar COLLATE Latin1_General_CI_AI para ignorar acentos e maiúsculas/minúsculas em uma consulta, resolvendo o problema apresentado.

Alternativa B — ❌ Incorreta

FULL TEXT é um recurso para pesquisa textual avançada (texto completo), que permite buscas por palavras e frases de forma eficiente, mas não define regras de comparação/ordenação em comandos comuns. Não é a cláusula adequada para tratar acentos em consultas normais.

Alternativa C — ❌ Incorreta

LANGUAGE é uma opção de alguns comandos (como SET LANGUAGE) para definir o idioma das mensagens do sistema e formatos de data, mas não influencia as regras de comparação de strings em consultas SQL.

Alternativa D — ❌ Incorreta

LATIN_CI_AS é um valor de collation (Latin, Case-Insensitive, Accent-Sensitive), não a cláusula que estabelece as regras. A cláusula que aplica esse valor é o COLLATE. A banca tenta confundir o nome de um collation específico com o comando em si.

Alternativa E — ❌ Incorreta

LIKE é um operador de busca por padrões (patterns) em strings, usado em cláusulas WHERE para encontrar substrings. Embora possa ser usado para buscar nomes com ou sem acentos, ele não define as regras de comparação; ele apenas utiliza as regras já definidas (pelo collation padrão ou explicitamente com COLLATE).

PEGA ESSA DICA!

Decore a função de cada cláusula: COLLATE regula a comparação; LIKE faz busca por padrão; FULL TEXT é para pesquisa textual; LANGUAGE define idioma; e valores como LATIN_CI_AS são parâmetros do COLLATE.

Gabarito: letra A.

Link permanente: /questoes/fg045094