Para calcular o número de produtos com nomes que terminam co . . .

Exercício 5 de 10 em: Banco de Dados / SQL

Ano: 2018 Banca: FCC Órgão: SEFAZ-SC Cargo: Analista de controle externo - Ciência da computação

📌 Para calcular o número de produtos com nomes que terminam com a letra B, o Auditor testou os comandos abaixo.

  • I. SELECT COUNT(nomePro)
    FROM Produto
    WHERE nomePro BEGIN '%B';
  • II. SELECT COUNT(*)
    FROM PRODUTO
    WHERE SUBSTR(nomePro, -1)='B';
  • III. SELECT COUNT(*)
    FROM Produto
    WHERE nomePro LIKE '%B';
  • IV. SELECT COUNT(nomePro)
    FROM Produto
    WHERE SUBSTR(nomePro, 0)='B';

Mostrará o resultado desejado o que consta APENAS em:

Parte 1 da resolução

Para iniciar a resolução deste exercício é importante entender que COUNT é uma das funções de agregação disponibilizadas pela linguagem SQL que tem com objetivo contabilizar a quantidade de linhas de um determinado grupo de dados.

Entre as alternativas há duas formas corretas de se utilizar a instrução COUNT, o comando COUNT(*) realizará a contabilização do número de linhas retornado pela query e COUNT(nomePro) realizará a contabilização do números de linhas retornado somente para a coluna nomePro. Supondo que a quantidade de registros seja igual em ambos os casos, COUN(*) e COUNT(nomePro) terão o mesmo resultado.

A partir desta primeira análise da instrução COUNT ainda não é possível identificar qual a alternativa correta.

Parte 2 da resolução

Verificando a cláusula WHERE das alternativas é possível eliminar a Letra B e D pois o comando BEGIN é um tipo de comando DTL(Data Transaction Language ou Linguagem de Transação de Dados) e no exercício cabe somente comandos DML(Data Manipulation Language ou Linguagem de Manipulação de Dados)

A instrução LIKE é usada em cláusulas WHERE para localizar registros de acordo com um determinado padrão, padrão que é definido por meio dos wildcars '%' e '_' conforme exemplos abaixo utilizando o wildcard '%':

  • Encontrar qualquer registro que começa com a letra B.
    • SELECT coluna FROM tabela WHERE coluna LIKE 'B%'
  • Encontrar qualquer registro que termina com a letra B.
    • SELECT coluna FROM tabela WHERE coluna LIKE '%B'
  • Encontrar qualquer registro que contenha a letra B em qualquer posição.
    • SELECT coluna FROM tabela WHERE coluna LIKE '%B%'
  • Encontrar qualquer registro que contenha começa com a letra B e termina com a letra C.
    • SELECT coluna FROM tabela WHERE coluna LIKE 'B%C'

Com base na análise acima da instrução LIKE chega-se a conclusão que o item III está correto.

Parte 3 da resolução

Por fim, para se chegar a resposta Letra E itens II e III corretos, é necessário saber que SUBSTR é uma instrução que tem como finalidade extrair um trecho da string original tendo como parâmetro um início, um tamanho opcional e a string original. Se o tamanho que se deseja extrair não for informado como parâmetro de SUBSTR o comando terá como retorno uma substring a partir do início informado até o final da string.

Para exemplificar suponha a tabela PESSOA abaixo com os campo ID e NOME:

IDNOME
1Afonso Pereira Najib
2Breno da Costa Alves

Na query SELECT NOME, SUBSTR(NOME, -1) as SUB FROM PESSOA WHERE SUBSTR(NOME, -1)='B' temos como resultado "Afonso Pereria Najib, b" ,enquanto que na query SELECT NOME, SUBSTR(nomePro, 0) as SUB FROM PESSOA WHERE SUBSTR(nomePro, 0)='B' nenhum resultado foi exibido.

Observação: O exercício não especificou qual SGBD foi utilizado para realizar a consulta, mas pode sabe-se que no ORACLE e MySQL a sintaxe é SUBSTR e no SqlServer e PostgreSQL a sintaxe é SUBSTRING.

Veja também as perguntas respondidas abaixo.

brand logo

Pergunta


O que é uma SQL ANSI ?

Acessar resposta.

brand logo

Pergunta


Quem criou o SQL ?

Acessar resposta.

brand logo

Pergunta


O que faz um comando select ?

Acessar resposta.


exerciciosresolvidos.com.br

Acreditamos na educação gratuita e de qualidade. Nos ajude com sua opinião, sugestão ou crítica : exerciciosresolvidosbr@gmail.com

Copyright © 2020. Built with ❤ Love