Magna Concursos
1688345 Ano: 2017
Disciplina: TI - Banco de Dados
Banca: PROGEP-FURG
Orgão: FURG
Provas:

A sequência de queries SQL abaixo cria a estrutura base de um banco de dados PostgreSQL que será utilizada na questão.

CREATE SCHEMA clube;

CREATE TABLE clube.socio (

id SERIAL,

primeiro_nome VARCHAR(40) NOT NULL,

sobrenome VARCHAR(200) NOT NULL,

endereco VARCHAR(200) NOT NULL,

telefone VARCHAR(20) NOT NULL,

recomendado_por INTEGER,

data_cadastro TIMESTAMP WITHOUT TIME ZONE NOT NULL,

CONSTRAINT socio_data_cadastro_key UNIQUE(data_cadastro),

CONSTRAINT socio_pkey PRIMARY KEY(id)

) WITH (oids = false);

CREATE TABLE clube.instalacao (

id SERIAL,

nome VARCHAR(200) NOT NULL,

custo_por_socio NUMERIC(10,2),

custo_por_convidado NUMERIC(10,2),

custo_inicial NUMERIC(10,2),

CONSTRAINT instalacao_pkey PRIMARY KEY(id)

) WITH (oids = false);

CREATE TABLE clube.agendamento (

id SERIAL,

id_socio INTEGER NOT NULL,

id_instalacao INTEGER NOT NULL,

inicio TIMESTAMP WITHOUT TIME ZONE NOT NULL,

fim TIMESTAMP WITHOUT TIME ZONE,

CONSTRAINT agendamento_pkey PRIMARY KEY(id),

CONSTRAINT agendamento_fk FOREIGN KEY (id_socio)

REFERENCES clube.socio(id)

ON DELETE RESTRICT ON UPDATE CASCADE

NOT DEFERRABLE,

CONSTRAINT agendamento_fk1 FOREIGN KEY (id_instalacao)

REFERENCES clube.instalacao(id)

ON DELETE RESTRICT ON UPDATE CASCADE

NOT DEFERRABLE

) WITH (oids = false);

Considerando a SQL abaixo, qual o objetivo da tabela virtual chamada auxiliar?

SELECT

socio.primeiro_nome || ' ' || socio.sobrenome,
socio2.primeiro_nome || ' ' || socio2.sobrenome,
socio.data_cadastro

FROM clube.socio
INNER JOIN (

SELECT socio.recomendado_por, MAX(socio.data_cadastro) data_cadastro
FROM clube.socio
WHERE socio.recomendado_por IS NOT NULL
GROUP BY socio.recomendado_por
ORDER BY 1

) auxiliar ON auxiliar.data_cadastro = socio.data_cadastro
INNER JOIN clube.socio socio2 ON socio2.id = socio.recomendado_por

 

Provas

Questão presente nas seguintes provas

Técnico de TI

25 Questões