Usando as linguagens de consulta de dados (DQL), analise a tabela FILM criada dentro do banco de dados MySQL abaixo e assinale a alternativa que tem o código em SQL que responde à pergunta: Qual a quantidade de filmes que começam com a letra “A ”? Utilize a coluna TITLE para filtrar o filme.
ASELECT COUNT(FILM_ID) AS QTD_FILME FROM FILM WHERE TITLE LIKE 'A%'
BSELECT COUNT(FILM_ID) AS QTD_FILME FROM FILM WHERE TITLE LIKE '%A%'
CSELECT COUNT(*) AS QTD_FILME FROM FILM WHERE TITLE LIKE '%A'
DSELECT COUNT(DISTINCT TITLE) AS QTD_FILME FROM FILM WHERE TITLE = 'A
ESELECT * FROM FILM WHERE DESCRIPTION = 'A%'
Revelar gabarito e comentário▾
GabaritoA — SELECT COUNT(FILM_ID) AS QTD_FILME FROM FILM WHERE TITLE 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”.
Operador LIKE e funções de agregação no MySQL
Gabarito: letra A. A consulta correta para contar quantos filmes começam com a letra "A" é SELECT COUNT(FILM_ID) AS QTD_FILME FROM FILM WHERE TITLE LIKE 'A%', pois o operador LIKE com o curinga % no final do padrão 'A%' filtra exatamente os títulos que iniciam com a letra "A", e a função COUNT(FILM_ID) conta as linhas resultantes. As demais alternativas erram na posição do curinga, no uso de COUNT(*) sem filtro adequado, na comparação com = ou na seleção de colunas incorretas.
O operador LIKE é utilizado em SQL para buscar padrões em colunas de texto, permitindo a comparação com parte de uma string. Ele é sempre usado em conjunto com dois curingas (wildcards): o %, que substitui zero ou mais caracteres, e o _, que substitui exatamente um caractere. A posição desses curingas no padrão define o que será filtrado: 'A%' encontra strings que começam com "A", '%A' encontra strings que terminam com "A", e '%A%' encontra strings que contêm "A" em qualquer posição. Essa distinção é o coração da questão — a banca explora exatamente a confusão entre "começa com" e "contém".
A função COUNT() é uma função de agregação que retorna o número de registros de uma seleção. Ela pode ser usada de duas formas principais: COUNT(*) conta todas as linhas do resultado, incluindo aquelas com valores nulos, enquanto COUNT(coluna) conta apenas as linhas onde a coluna especificada não é nula. No contexto da questão, COUNT(FILM_ID) é adequado porque FILM_ID é a chave primária da tabela (não pode ser nula), então o resultado é idêntico ao de COUNT(*), mas semanticamente mais preciso por contar os filmes.
Na prática, imagine uma tabela FILM com os títulos: "A Clockwork Orange", "Avatar", "The Godfather", "Amélie" e "Casablanca". A consulta WHERE TITLE LIKE 'A%' retornaria apenas "A Clockwork Orange", "Avatar" e "Amélie" — três filmes. Já WHERE TITLE LIKE '%A%' retornaria também "Casablanca" (porque contém "a" no final), e WHERE TITLE LIKE '%A' retornaria apenas "Casablanca" (porque termina com "a"). Essa diferença prática mostra como a posição do curinga altera completamente o resultado.
A pegadinha clássica desta questão é trocar o padrão 'A%' (começa com A) por '%A%' (contém A) ou '%A' (termina com A). O candidato que não domina a semântica dos curingas tende a marcar a alternativa B, que conta todos os filmes que têm a letra "A" em qualquer posição do título — um resultado muito mais amplo e incorreto para a pergunta feita. Além disso, a alternativa D usa o operador = em vez de LIKE, o que buscaria apenas títulos exatamente iguais a "A", e a alternativa E seleciona a coluna DESCRIPTION em vez de TITLE, fugindo completamente do que foi pedido.
Guarde a fronteira entre os padrões 'A%', '%A%' e '%A': é exatamente nela que as alternativas se dividem. A pergunta "começam com a letra A" exige o curinga %apenas no final do padrão.
Critério
Alternativa A (✅ Correta)
Alternativa B (❌)
Alternativa C (❌)
Alternativa D (❌)
Alternativa E (❌)
Padrão de filtro
LIKE 'A%' — começa com "A"
LIKE '%A%' — contém "A" em qualquer posição
LIKE '%A' — termina com "A"
= 'A' — título exatamente igual a "A"
= 'A%' — descrição literal "A%"
Coluna usada
TITLE ✅
TITLE ✅
TITLE ✅
TITLE ✅
DESCRIPTION ❌
Função de agregação
COUNT(FILM_ID) — conta filmes
COUNT(FILM_ID) — conta filmes
COUNT(*) — conta linhas
COUNT(DISTINCT TITLE) — conta títulos únicos
Nenhuma (SELECT *)
Atende à pergunta?
Sim — conta filmes que começam com "A"
Não — inclui filmes com "A" no meio/final
Não — inverte o critério (termina com "A")
Não — busca apenas título "A"
Não — coluna errada e sem contagem
Alternativa A — ✅ Correta ⟵ GABARITO
A consulta SELECT COUNT(FILM_ID) AS QTD_FILME FROM FILM WHERE TITLE LIKE 'A%' está correta porque:
COUNT(FILM_ID) conta o número de filmes (linhas) onde FILM_ID não é nulo — como é chave primária, conta todas as linhas filtradas;
WHERE TITLE LIKE 'A%' filtra apenas os títulos que começam com a letra "A", pois o curinga % no final substitui qualquer sequência de caracteres após o "A";
AS QTD_FILME dá um nome legível à coluna de resultado.
Essa é a única alternativa que combina corretamente a função de contagem com o padrão de filtro adequado à pergunta.
Alternativa B — ❌ Incorreta
A consulta SELECT COUNT(FILM_ID) AS QTD_FILME FROM FILM WHERE TITLE LIKE '%A%' está incorreta porque o padrão '%A%' filtra títulos que contêm a letra "A" em qualquer posição, não apenas os que começam com "A". Isso incluiria filmes como "Casablanca" ou "The Godfather" (que têm "a" no meio), inflando o resultado. O erro é a posição do curinga % antes do "A" — para "começa com", o curinga deve estar apenas no final.
Alternativa C — ❌ Incorreta
A consulta SELECT COUNT(*) AS QTD_FILME FROM FILM WHERE TITLE LIKE '%A' está incorreta por dois motivos:
O padrão '%A' filtra títulos que terminam com a letra "A", não os que começam — inverte completamente o critério da pergunta;
Embora COUNT(*) seja funcionalmente equivalente a COUNT(FILM_ID) neste caso (pois FILM_ID é chave primária e nunca é nulo), o filtro errado torna a consulta inválida para a pergunta.
O erro central é o curinga % no início do padrão, que muda o significado de "começa com" para "termina com".
Alternativa D — ❌ Incorreta
A consulta SELECT COUNT(DISTINCT TITLE) AS QTD_FILME FROM FILM WHERE TITLE = 'A' está incorreta porque:
Usa o operador = em vez de LIKE, o que busca apenas títulos exatamente iguais a "A" — não títulos que começam com "A";
COUNT(DISTINCT TITLE) conta títulos únicos, o que é desnecessário e não atende à pergunta (que pede a quantidade de filmes, não de títulos distintos);
O padrão 'A' sem curingas não captura títulos como "Avatar" ou "Amélie".
O operador = faz comparação exata, enquanto LIKE é o operador correto para busca de padrões com curingas.
Alternativa E — ❌ Incorreta
A consulta SELECT * FROM FILM WHERE DESCRIPTION = 'A%' está incorreta porque:
Seleciona a coluna DESCRIPTION em vez de TITLE, ignorando a instrução explícita do enunciado de usar a coluna TITLE para filtrar;
Usa o operador = em vez de LIKE, tratando 'A%' como uma string literal (buscaria descrições exatamente iguais a "A%") em vez de um padrão;
SELECT * retorna todas as colunas, não uma contagem — a pergunta pede a quantidade de filmes, não os registros.
Esta alternativa mistura vários erros: coluna errada, operador errado e ausência de função de agregação.
NÃO CAIA NESSA!
A banca adora trocar a posição do curinga % para confundir. Na alternativa B, o padrão '%A%' parece correto à primeira vista, mas conta filmes que contêm "A" em qualquer lugar, não os que começam com "A". Na alternativa C, o padrão '%A' inverte para "termina com". A regra de ouro: para "começa com X", use LIKE 'X%' — curinga apenas no final. Com treino, você enxerga essas trocas de longe 💪.
PEGA ESSA DICA!
Na prova, quando a pergunta usar "começa com", "termina com" ou "contém", associe imediatamente à posição do curinga: começa com → 'X%'; termina com → '%X'; contém → '%X%'. E lembre-se: COUNT(*) conta todas as linhas, COUNT(coluna) conta as não nulas — para chave primária, são equivalentes. Se a alternativa usar = em vez de LIKE, desconfie: = busca valor exato, não padrão.