Questão de Arquitetura de Software — Banco de Dados — FUNDATEC 2023
Arquitetura de Software›Banco de Dados
Código
qq890349
Banca
FUNDATEC
Órgão
CAU-RS
Ano
2023
Nível
Superior
Cargo
Analista Superior Desenvolvimento de TIC
Considerando que no campo TIPO da Tabela PROJETO o primeiro caractere (uma letra) representa a prioridade do projeto e o segundo caractere (um número) representa a complexidade do projeto, assinale a alternativa que corresponde a um comando SQL que irá retornar somente os dados dos projetos de prioridade A.
ASELECT * FROM PROJETOWHERE TIPO IN 'A';
BSELECT * FROM PROJETOWHERE TIPO = 'A_';
CSELECT * FROM PROJETOWHERE TIPO LIKE 'A%';
DSELECT * FROM PROJETOWHERE TIPO ('A1', 'A3');
ESELECT * FROM PROJETOWHERE TIPO 'A'.*;
Revelar gabarito e comentário▾
GabaritoC — SELECT * FROM PROJETO
WHERE TIPO LIKE 'A%';
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: filtro por padrão com LIKE
Gabarito: letra C. Para retornar projetos de prioridade A, o campo TIPO deve começar com a letra 'A', independentemente do número seguinte (complexidade). O operador LIKE com o padrão 'A%' é a forma correta de selecionar todas as strings que iniciam com 'A', pois % representa qualquer sequência de caracteres.
A tabela a seguir compara as alternativas:
Alternativa
Sintaxe
Funciona?
Motivo
A
TIPO IN 'A'
❌
IN exige lista entre parênteses e valores exatos; 'A' não casa com 'A1', 'A3' etc.
B
TIPO = 'A_'
❌
O _ no = é literal (underscore); não funcionaria como curinga. Para um caractere curinga, seria LIKE 'A_'.
C
TIPO LIKE 'A%'
✅
LIKE com % casa qualquer sequência após 'A'. Retorna 'A1', 'A3', etc.
D
TIPO ('A1', 'A3')
❌
Sintaxe inválida. O correto seria IN ('A1','A3'), que limitaria a apenas duas complexidades, não todas as prioridades A.
E
TIPO 'A'.*
❌
Expressão regular? Não é padrão SQL. Em alguns SGBDs (PostgreSQL) usar-se-ia TIPO ~ '^A', mas a sintaxe apresentada é incorreta.
Alternativa A — ❌ Incorreta
O operador IN requer uma lista de valores entre parênteses, e 'A' é um valor exato. Como TIPO possui dois caracteres (ex.: 'A1'), nenhuma linha atenderia.
Alternativa B — ❌ Incorreta
No operador =, o caractere _ é literal (underscore). Para usar _ como curinga de um caractere, seria necessário LIKE 'A_'. Além disso, a questão não exige que o segundo caractere seja obrigatório; LIKE 'A%' é mais abrangente.
Alternativa C — ✅ Correta
LIKE 'A%' seleciona todos os registros onde TIPO começa com 'A', independentemente do restante. É a solução correta.
Alternativa D — ❌ Incorreta
A sintaxe TIPO ('A1', 'A3') é inválida. Mesmo se fosse TIPO IN ('A1','A3'), retornaria apenas duas complexidades, não todos os projetos de prioridade A.
Alternativa E — ❌ Incorreta
A expressão 'A'.* não é reconhecida no SQL padrão. Em alguns SGBDs, expressões regulares usam ~ ou REGEXP, mas a sintaxe apresentada está errada.
NÃO CAIA NESSA!
A banca explora a confusão entre operadores (=, IN, LIKE) e a função dos curingas (_ para um caractere, % para qualquer sequência). Lembre-se: LIKE é o operador de padrão; % casa zero ou mais caracteres; _ casa exatamente um caractere.