FC ConcursosFC Concursos

Questão FC369467

Observe o script SQL a seguir. CREATE TABLE AUDITOR (ID_A INT NOT NULL, Nome varchar(20),PRIMARY KEY (ID_A)); CREATE TABLE AUDITADO (ID_O INT NOT NULL, Nome varchar(20), ID_A INT,

Linguagem SQL

FGV · 2024

Observe o script SQL a seguir.


CREATE TABLE AUDITOR (ID_A INT NOT NULL,
  Nome varchar(20),PRIMARY KEY (ID_A));
CREATE TABLE AUDITADO (ID_O INT NOT NULL,
  Nome varchar(20), ID_A INT,
  PRIMARY KEY (ID_O),FOREIGN KEY (ID_A)
  REFERENCES AUDITOR(ID_A));
INSERT INTO AUDITOR (ID_A, Nome)
VALUES (1, 'Maite');
INSERT INTO AUDITOR (ID_A, Nome)
VALUES (2, 'Lucca');
INSERT INTO AUDITOR (ID_A, Nome)
VALUES (3, 'Maria Clara');
INSERT INTO AUDITADO (ID_O, Nome, ID_A)
VALUES (1, 'Felipe', 1);
INSERT INTO AUDITADO (ID_O, Nome, ID_A)
VALUES (2, 'Stella', 2);
INSERT INTO AUDITADO (ID_O, Nome, ID_A)
VALUES (3, 'Patricia', NULL);


Para analisar quais auditores estão realizando auditoria em quais auditados, é necessária a execução de uma consulta SQL que apresente o seguinte resultado:

 

Auditor

Auditado

Maite

Felipe

Lucca

Stella

   

Para obter o resultado apresentado, deve-se executar a consulta SQL:

  1. SELECT AUDITOR.Nome as 'Auditor' FROM AUDITOR WHERE AUDITOR.ID_A = ALL   (SELECT AUDITADO.Nome as 'Auditado'   FROM AUDITADO   WHERE AUDITADO.ID_A=AUDITOR.ID_A);
  2. SELECT AUDITOR.Nome as 'Auditor', AUDITADO.Nome as 'Auditado' FROM AUDITOR, AUDITADO HAVING AUDITADO.ID_A=AUDITOR.ID_A;
  3. SELECT AUDITOR.Nome as 'Auditor', AUDITADO.Nome as 'Auditado' FROM AUDITOR INNER JOIN AUDITADO ON AUDITADO.ID_A=AUDITOR.ID_A;
  4. SELECT AUDITOR.Nome as 'Auditor' FROM AUDITOR WHERE EXISTS (SELECT AUDITADO.Nome as    'Auditado' FROM AUDITADO WHERE AUDITADO.ID_A=AUDITOR.ID_A);
  5. SELECT AUDITOR.Nome as 'Auditor' FROM AUDITOR UNION SELECT AUDITADO.Nome as 'Auditado' FROM AUDITADO;
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A instrução SELECT especifica as colunas a serem exibidas: AUDITOR.Nome e AUDITADO.Nome, renomeadas com AS para "Auditor" e "Auditado", garantindo cabeçalhos claros no resultado.

O uso de INNER JOIN entre as tabelas faz a combinação baseada na condição após ON: AUDITADO.ID_A = AUDITOR.ID_A. Isso relaciona cada registro de auditado ao seu respectivo auditor quando a chave estrangeira coincide com a chave primária.

Por ser INNER JOIN, apenas pares com correspondência são retornados; registros sem vínculo (por exemplo, quando NULL em ID_A) são excluídos do resultado. Assim, aparecem apenas "Maite–Felipe" e "Lucca–Stella", que têm relacionamento válido.


Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo