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:
- 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);
- SELECT AUDITOR.Nome as 'Auditor', AUDITADO.Nome as 'Auditado' FROM AUDITOR, AUDITADO HAVING AUDITADO.ID_A=AUDITOR.ID_A;
- SELECT AUDITOR.Nome as 'Auditor', AUDITADO.Nome as 'Auditado' FROM AUDITOR INNER JOIN AUDITADO ON AUDITADO.ID_A=AUDITOR.ID_A;
- SELECT AUDITOR.Nome as 'Auditor' FROM AUDITOR WHERE EXISTS (SELECT AUDITADO.Nome as 'Auditado' FROM AUDITADO WHERE AUDITADO.ID_A=AUDITOR.ID_A);
- 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