A expressão em SQL padrão descrita no quadro abaixo realiza . . .

Exercício 3


A expressão em SQL padrão descrita no quadro abaixo realiza uma consulta em um banco de dados que contém, pelo menos, duas tabelas, sendo uma denominada FUNCIONARIO e outra denominada DEPENDENTE, que armazenam informações sobre funcionários de uma empresa e seus dependentes, respectivamente.

A tabela FUNCIONARIO possui pelo menos três atributos: nome_func, sobrenome_func e cpf_func, que armazenam, respectivamente, o nome, o sobrenome e o número de CPF dos funcionários.

A tabela DEPENDENTE possui pelo menos quatro atributos: nome_depen, sobrenome_depen e cpf_depen, que armazenam, respectivamente, o nome, o sobrenome e o número de CPF dos dependentes, e cpf_func_resp, que armazena o número do CPF do funcionário responsável pelos dependentes.

SELECT nome_func, sobrenome_func
FROM FUNCIONARIO
WHERE NOT EXISTS (
SELECT * FROM DEPENDENTE
WHERE cpf_func = cpf_func_resp
);

Com base nas informações apresentadas, a consulta em SQL padrão acima descrita recupera :

A
o nome e o sobrenome de funcionários que não têm dependentes.
B
o nome e o sobrenome de todos os dependentes dos funcionários.
C
o nome e o sobrenome de funcionários que têm dependentes.
D
todos os atributos de funcionários que não têm dependentes.
E
todos os atributos de todos os dependentes dos funcionários.

Resolução


Parte 1 da resolução

Para solucionar o exercícios vamos supor que as tabelas FUNCIONARIO e DEPENDENTE estão preenchidas conforme ilustrado abaixo:

  • Tabela FUNCIONARIO
    • nome_funcsobrenome_funccpf_func
      JoãoAlemeida111.111.111-11
      PedroSilva111.111.111-12
      PatriciaAlves111.111.111-13
      PietraOliveira111.111.111-14
  • Tabela DEPENDENTE
    • nome_depensobrenome_depencpf_depencpf_func_resp
      CarlaSilva222.222.222-21111.111.111-12
      RicardoSilva222.222.222-22111.111.111-12
      EmanuelSilva222.222.222-23111.111.111-12
      EnricoOliveira222.222.222-24111.111.111-14
      LunaOliveira222.222.222-25111.111.111-14
Parte 2 da resolução

Apesar de a subquery SELECT * FROM DEPENDENTE WHERE cpf_func = cpf_func_resp informada no exercício, somente retornar os registros da tabela DEPENDENTE que estejam relacionados com a tabela FUNCIONARIO pela foreign key cpf_func_resp, a instrução externa NOT EXISTS é usada somente para retornar os registro que não foram encontrados no subselect.

Observação: O comando EXISTS é usado para testar se algum registro é localizado, e sendo utilizado com a instrução NOT a ideia é verificar se um registro não foi localizado na subquery.

Já pela query externa SELECT nome_func, sobrenome_func FROM FUNCIONARIO sabemos que o que será encontrado são os dados de nome e sobrenome dos funcionários da tabela FUNCIONARIO, podendo-se eliminar as alternativas B, D e E.

Por fim, entre as alternativas A e C, chega-se a resolução alternativa A, já que as restrições constantes na cláusula WHERE, conforme explicado acima e continuando a ilustração da parte 1 abaixo, irão retornar os dados de funcionários que não possuem dependentes.

  • Tabela FUNCIONARIO
    • nome_funcsobrenome_func
      JoãoAlemeida
      PatriciaAlves

Resolva também as questões relacionadas abaixo sobre SQL.

Exercício 4

Julgue os próximos itens, no que diz respeito a comandos SQL de consulta.

  • I Subqueries de ...

Exercício 5

Para calcular o número de produtos com nomes que terminam com a letra B, o Auditor testou os comando ...

Exercício 6

Na linguagem SQL, considerando duas tabelas A e B, para se obter o que está na Tabela A e não está n ...

Veja também as perguntas respondidas abaixo.

Pergunta

O que é uma SQL ANSI ?

Pergunta

Quem criou o SQL ?

Pergunta

O que faz um comando select ?


exerciciosresolvidos.com.br

Acreditamos na educação gratuita e de qualidade. Nos ajude com sua opinião, sugestão ou crítica enviando um e-mail para: exerciciosresolvidosbr@gmail.com

Copyright © 2024. Built with ❤ Love