Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2023

Banco de DadosSQL
Código
qq890175
Banca
FUNDATEC
Órgão
BRDE
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas - Desenvolvimento de Sistemas
29.png (453×182)
Figura 1 – Tabela AREA
Considerando a tabela apresentada na Figura 1, qual resultado será retornado pelo comando SQL abaixo?SELECT COUNT(ID) FROM AREA WHERE NOME LIKE 'D%';
  1. A0
  2. B2
  3. C3
  4. D6
  5. E7
Revelar gabarito e comentário

GabaritoC — 3

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

Resolução

Gabarito: letra C — a conta chega a 3 — alternativa C.

A ideia por trás

COUNT é uma função de agregação que conta quantas linhas existem em um conjunto de resultados. Quando usamos COUNT(coluna), ela conta apenas as linhas em que essa coluna não é nula. O operador LIKE é usado para comparar textos com padrões, e o curinga '%' representa qualquer sequência de caracteres, inclusive nenhum.

A consulta funciona em duas etapas: primeiro o WHERE filtra as linhas da tabela, depois o COUNT conta quantas sobraram. O padrão 'D%' significa que o NOME deve começar com a letra D, seguida de qualquer coisa (ou nada). Por isso, 'D', 'DA' e 'DB' atendem ao critério, mas 'A', 'B', 'C' e 'E' não.

Esta questão testa se você sabe que o WHERE é aplicado antes da contagem e que '%' casa com zero ou mais caracteres. O erro mais comum é contar todas as linhas da tabela ou confundir '%' com '_'.

O que a questão dá

  • tabela AREA com colunas ID e NOME

  • nomes na tabela: A, B, C, D, DA, DB, E

  • comando: SELECT COUNT(ID) FROM AREA WHERE NOME LIKE 'D%'

O que queremos: o número de linhas retornado pelo comando

Passo 1 — Listar os nomes que começam com D

O comando pede para contar apenas as linhas cujo NOME começa com a letra D. O operador LIKE com o padrão 'D%' faz exatamente isso: o '%' significa 'qualquer coisa depois', inclusive nada. Então precisamos identificar quais nomes da tabela satisfazem essa condição.

D,DA,DB\boxed{\text{D}, \text{DA}, \text{DB}}
NÃO CAIA NESSA!

Achar que 'D%' exige pelo menos um caractere depois do D, excluindo o nome 'D' — mas '%' casa com zero caracteres também.

Passo 2 — Contar quantos nomes sobraram

Depois de filtrar, a função COUNT(ID) conta quantas linhas passaram pelo WHERE. Como ID é a chave primária, não há valores nulos, então COUNT(ID) conta todas as linhas filtradas.

Por que esta fórmula: COUNT é a função de agregação que conta linhas; aqui ela recebe a coluna ID, mas como não há nulos, o resultado é o mesmo que COUNT(*).

COUNT(ID)COUNT(ID)

De onde vem cada valor: IDID = enunciado: coluna da tabela AREA

COUNT(ID)sobreaslinhasD,DA,DB=3COUNT(ID) sobre as linhas D, DA, DB = \boxed{3}
NÃO CAIA NESSA!

Contar todas as 7 linhas da tabela, esquecendo que o WHERE filtra antes.

Resposta: 3 — alternativa C

Link permanente: /questoes/qq890175