Questão de Banco de Dados — PostgreSQL — PROGEP FURG 2017
Banco de DadosPostgreSQL
- Código
- qg947291
- Banca
- PROGEP FURG
- Órgão
- FURG
- Ano
- 2017
- Cargo
- PROGEP - - Tec ( )
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
- AListar cada sócio, quem recomendou e a data de cadastro.
- BAgrupar por data de cadastro os sócios, devolvendo quem recomendou e a respectiva data.
- CObter a informação referente a quem recomendou e qual a data de cadastro dos sócios.
- DA query possui erros de sintaxe na linha do ORDER BY e na ausência da palavra chave AS.
- EBuscar quem recomendou um sócio e qual a última data de cadastro de seus recomendados.