Questão de Banco de Dados — SQL Server — FGV 2021
- 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
- ACOLLATE;
- BFULL TEXT;
- CLANGUAGE;
- DLATIN_CI_AS;
- ELIKE.
GabaritoA — COLLATE;
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 |
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.
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.
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.
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.
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).
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