As colunas de tabelas em bancos de dados relacionais podem armazenar muitos valores duplicados. Contudo, em diversas situações é necessário listar apenas os valores diferentes contidos nessas colunas. Para isso, o comando SQL utilizado para retornar apenas os valores diferentes de uma consulta é:
- A)EXISTS;
EXISTS serve para testar existência de linhas em uma subconsulta, não para eliminar valores repetidos.
- B)HAVING;
HAVING filtra grupos após agregação, mas não é o comando usado para retornar apenas valores únicos.
- C)FULL OUTER JOIN;
FULL OUTER JOIN faz junção entre tabelas, trazendo correspondências e não correspondências, sem remover duplicidades por si só.
- D)SELECT DISTINCT;
SELECT DISTINCT é o comando correto para retornar somente valores diferentes, eliminando duplicados do resultado.
- E)CREATE OR REPLACE VIEW.
CREATE OR REPLACE VIEW cria ou substitui uma visão, mas não é o mecanismo de consulta para listar valores distintos.
Gabarito: D
Quando uma coluna pode repetir valores muitas vezes, o SQL oferece uma forma simples de “limpar a lista” e mostrar só o que é diferente. Isso é muito comum em consultas de cadastro, cidades, categorias, estados civis e por aí vai: você não quer ver 200 vezes o mesmo valor, quer só a versão sem repetição. O comando usado para isso é o SELECT DISTINCT. O DISTINCT atua sobre o resultado da consulta, eliminando linhas duplicadas conforme as colunas selecionadas. Em outras palavras, ele pede ao banco: “me mostre apenas valores únicos”. Exemplo: SELECT DISTINCT cidade FROM clientes; vai retornar cada cidade apenas uma vez, mesmo que vários clientes sejam da mesma cidade. Se você selecionasse cidade e estado juntos, a distinção passaria a considerar o par de colunas, o que é um detalhe clássico em prova. Por isso o gabarito é a letra D. As outras opções tratam de filtros, junções, criação de visões ou condições agregadas, mas não servem para remover duplicidades de um resultado simples. Em termos de SQL padrão, DISTINCT é exatamente o recurso para retornar valores distintos.