Julgue os próximos itens, no que diz respeito a comandos SQL . . .
Exercício 4
Julgue os próximos itens, no que diz respeito a comandos SQL de consulta.
- I Subqueries de múltiplas colunas retornam várias colunas em uma mesma linha.
- II A função
UNION
apresenta as linhas que existam simultaneamente em duas ou mais tabelas. - III A função
EXISTS
garante que o resultado de uma subquery somente seja mostrado se retornar uma ou mais linhas. - IV A função
EXTRACT
retorna uma das informações de um campo do tipo data (dia, mês, ano, hora, minuto ou segundo).
Assinale a opção correta.
Resolução
Parte 1 da resolução
A afirmativa do item I "Subqueries de múltiplas colunas retornam várias colunas em uma mesma linha" está errada, pois as subqueries de múltiplas colunas retornam várias colunas em colunas distintas, conforme demonstrado no exemplo abaixo.
- Suponha que a consulta
SELECT * FROM tabelaum
retorne o resultado da tabela abaixo : -
campo_um campo_dois 1 1 2 2 3 1 4 2 5 1 - Já a consulta
SELECT * FROM tabelaum WHERE (campo_um, campo_dois) IN (SELECT campo_um, campo_dois FROM tabelaum WHERE campo_dois IN (1));
é executada corretamente e retorna uma tupla de dados fazendo uma comparação de duas colunas na subquery, conforme o resultado abaixo : -
campo_um campo_dois 1 1 3 1 5 1
Parte 2 da resolução
A afirmativa do item 2 "A função UNION
apresenta as linhas que existam simultaneamente em duas ou mais tabelas." está errada pois a instrução UNION
retorna a diferença de registros entre duas tabelas mais uma linha por registro que seja igual. O texto item 2 se refere ao comando UNION ALL
.
- Suponha que a consulta
SELECT * FROM tabelaum
retorne o resultado da tabela abaixo : -
campo_um campo_dois 1 1 2 2 3 1 - Suponha que a consulta
SELECT * FROM tabeladois
retorne o resultado da tabela abaixo : -
campo_um campo_dois 1 1 2 2 4 2 - Com a query
select campo_um, campo_dois from tabelaum union select campo_um, campo_dois from tabeladois
é feito o union entre as tabelaum e tabeladois e o resultado é demonstrada abaixo : -
campo_um campo_dois 2 2 1 1 3 1 4 2 - Com a query
select campo_um, campo_dois from tabelaum union all select campo_um, campo_dois from tabeladois
é feito a união sem descarte de registros entre as tabelaum e tabeladois e o resultado é demonstrada abaixo : -
campo_um campo_dois 1 1 2 2 3 1 1 1 2 2 4 2
Observação : Perceba que a query que usa UNION
retorna 4 linhas enquanto que a query que usa UNION ALL
retorna 6 linhas, ou seja, 3 linhas da tabela 1 com as 3 linhas da tabela 2.
Parte 3 da resolução
Já que os itens I e II estão errados, por eliminação sabe-se que as alternativas A, B, C e E não são a resposta, sobrando a Letra D como resposta correta.
Resolva também as questões relacionadas abaixo sobre SQL.
Para calcular o número de produtos com nomes que terminam com a letra B, o Auditor testou os comando ...
Na linguagem SQL, considerando duas tabelas A e B, para se obter o que está na Tabela A e não está n ...
Um programador deseja definir uma query SQL para retornar os valores das colunas salario e job_id pa ...
Veja também as perguntas respondidas abaixo.
O que é ? e para que serve a linguagem SQL ?
O que é uma SQL ANSI ?
O que é uma query e como é escrita ?