Imagem de fundo

Considerando as tabelas criadas com os comandos abaixo em...

Considerando as tabelas criadas com os comandos abaixo em um banco de dados Postgres, qual comando SQL retorna APENAS os nomes que começam com a letra M, têm idade maior que 10 e o estado com valor SP ou marcador especial NULL?


create table pessoa (

id INTEGER primary key,

nome varchar (100)

);

.

create table idade (

id INTEGER references pessoa (id) primary key,

idade inet not NULL

);

.

create table estado (

id INTEGER references pessoa (id) primary key,

estado varchar (2) not NULL

);



A

SELECT nome FROM pessoa

JOIN idade ON pessoa.id = idade.id

JOIN estado ON pessoa.id = estado.id

WHERE nome like 'M%'

AND idade > 10

AND estado IN ('SP',NULL)


B

SELECT * FROM pessoa

JOIN idade ON pessoa.id = idade.id

JOIN estado ON pessoa.id = estado.id

WHERE nome = 'M%'

AND idade > 10

AND estado IN ('SP',NULL)


C

SELECT pessoa.nome FROM pessoa

LEFT JOIN idade ON pessoa.id = idade.id

LEFT JOIN estado ON pessoa.id = estado.id

WHERE nome like 'M%'

AND idade > 10

AND (estado IN ('SP') or estado is NULL)


D

SELECT nome FROM pessoa

LEFT JOIN idade ON pessoa.id = idade.id

LEFT JOIN estado ON pessoa.id = estado.id

WHERE nome = 'M%'

AND idade > 10

AND (estado ='SP' or estado = null)


E

SELECT pessoa.nome FROM pessoa, idade,

estado

WHERE pessoa.id = idade.id

AND

pessoa.id = estado.id

AND

nome = 'M%'

AND idade > 10

AND (estado = 'SP' or estado = null)