← Questões de Banco de Dados

Banco de Dados · CONSULPLAN · 2022

Questão comentada de Banco de Dados

Observe a tabela a seguir de um banco de dados: PROFESSOR (CodProfessor integer primary key, NomeProfessor varchar(40), Titulacao varchar(45), DataAdmissao date) Considere uma consulta ao banco de dados que liste o nome dos professores e a data de admissão dos que entraram na Instituição no ano de 2018 ou no mês de julho, independente do ano. Assinale qual consulta abaixo estaria correta.

Gabarito: C

Quando a questão fala em "ano de 2018 ou no mês de julho, independente do ano", ela está pedindo um filtro por partes da data. Em SQL, a forma mais direta é extrair o ano e o mês da coluna de data e comparar com os valores desejados. Assim, você não depende do texto da data nem faz comparação confusa com intervalos que não representam a regra do enunciado. A lógica correta é: trazer os registros em que o ano de DataAdmissao seja 2018 ou o mês seja 7. Por isso a consulta com year(dataAdmissao)=2018 or month(dataAdmissao)=07 atende exatamente ao pedido. Repare que basta uma das condições ser verdadeira, porque o enunciado usa "ou". As alternativas com in, like e between tentam parecer elegantes, mas escorregam no detalhe. in não funciona assim para separar ano e mês dentro de uma data; like é comparação textual e data não deve ser tratada desse jeito; between cria um intervalo contínuo, quando o problema pede dois critérios distintos. Em prova, a banca gosta dessa mistura de conceito de data com cara de string para confundir. Resumo prático: quando a questão falar em ano, mês, dia ou partes de uma data, pense em funções como year(), month() ou day(). É o tipo de leitura que evita cair em pegadinha de data mal montada.

Continue treinando

Questões relacionadas