Com relação aos comandos SQL apresentados acima, julgue o it...
SELECT Cadastro.NomeCliente, Ordens.NumOrdem
FROM Cadastro
LEFT JOIN Ordens
ON Cadastro.NumCliente=Ordens.NumCliente
ORDER BY NomeCliente;
Com relação aos comandos SQL apresentados acima, julgue o item a seguir.
O resultado será uma lista mostrada por ordem
alfabética de NomeCliente e poderá ocorrer mais de uma
linha contendo o mesmo registro NomeCliente.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - certo
A questão testa a compreensão dos comandos SELECT, LEFT JOIN e ORDER BY no contexto do SQL (Structured Query Language), que é a linguagem padrão para interação com bancos de dados relacionais.
O comando SELECT é utilizado para recuperar dados das tabelas. Neste caso, ele está recuperando os campos NomeCliente da tabela Cadastro e NumOrdem da tabela Ordens.
O LEFT JOIN é um tipo de junção que retorna todos os registros da tabela à esquerda (Cadastro) e os registros correspondentes da tabela à direita (Ordens). Quando não há correspondência, o resultado é NULL do lado direito.
O ORDER BY é usado para ordenar o conjunto de resultados pelo campo especificado, neste caso, por NomeCliente de forma alfabética.
A assertiva está correta porque, dado o uso do LEFT JOIN, todos os clientes serão listados, mesmo aqueles que não possuem ordens associadas. Além disso, como NomeCliente é usado no ORDER BY, a lista será ordenada alfabeticamente. Se um cliente tem mais de uma ordem, seu nome aparecerá múltiplas vezes - uma vez para cada ordem, o que justifica a possibilidade de múltiplas linhas com o mesmo registro de NomeCliente.
A compreensão correta desse conceito é essencial não só para acertar questões de concursos públicos, mas também para qualquer atividade profissional que envolva o trabalho com bancos de dados SQL.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
O resultado será uma lista mostrada por ordem alfabética de NomeCliente e poderá ocorrer mais de uma linha contendo o mesmo registro NomeCliente.
ordem alfabética = ORDER BY. CORRETO
poderá ocorrer mais de uma linha contendo o mesmo registro , ou seja, poderá haver repetições, e como na questão não há nenhum UNION ou DISTINCT( termos usados em SQL para remover repetições) ela está CORRETA
GABARITO CERTO
Perfeito! Quando não se especifica a ordenação, considera-se que será ascendente -> A, B, C, D...
Além disso, não há nenhum operador distinct, logo pode haver repetição do registro NomeCliente.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo