Você está na página 1de 3

UNIVERSIDADE TIRADENTES

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS


BANCO DE DADOS II

GILUAN JOSÉ DE SOUZA

PRODUÇÃO DA APRENDIZAGEM SIGNIFICATIVA – PAS

Petrolina – PE
2022
CREATE TABLE cinema (
cod_cine serial PRIMARY KEY,
nome_cine VARCHAR (100) NOT NULL,
fone_cine VARCHAR(10) NOT NULL
);

CREATE TABLE sala (


cod_cine INT GENERATED ALWAYS AS IDENTITY,
num_sala INT NOT NULL,
capacidade INT NOT NULL,
PRIMARY KEY (cod_cine),
CONSTRAINT fk_cine
FOREIGN KEY(cod_cine)
REFERENCES cinema(cod_cine)
);

CREATE TABLE horario (


cod_hor serial PRIMARY KEY,
inicio TIME NOT NULL,
fim TIME NOT NULL
);

CREATE TABLE filme (


cod_filme INT GENERATED ALWAYS AS IDENTITY,
nome_filme VARCHAR (100) NOT NULL,
diretor VARCHAR(100) NOT NULL,
estudio VARCHAR(100) NOT NULL,
PRIMARY KEY (cod_filme)
);

CREATE TABLE preco (


cod_cine INT GENERATED ALWAYS AS IDENTITY,
cod_hor TIME NOT NULL,
preco DECIMAL NOT NULL,
PRIMARY KEY (cod_cine),
CONSTRAINT fk_cine_preco
FOREIGN KEY(cod_cine)
REFERENCES cinema(cod_cine),
CONSTRAINT fk_hora
FOREIGN KEY(cod_hor)
REFERENCES horario(cod_hor)
);

CREATE TABLE sessao (


cod_cine INT GENERATED ALWAYS AS IDENTITY,
num_sala INT NOT NULL,
cod_hor TIME NOT NULL,
cod_filme INT NOT NULL
PRIMARY KEY (cod_cine),
CONSTRAINT fk_cine_sessao
FOREIGN KEY(cod_cine)
REFERENCES cinema(cod_cine),
CONSTRAINT fk_hora_sessao
FOREIGN KEY(cod_hor)
REFERENCES horario(cod_hor),
CONSTRAINT fk_filme_sessao
FOREIGN KEY(cod_filme)
REFERENCES filme(cod_filme)
);

-- A) Listar filmes da FOX


SELECT filme.nome_filme, filme.diretor, cinema.nome_cine FROM filme
JOIN sessao
ON sessao.cod_filme = filme.cod_filme
JOIN cinema
ON cinema.cod_cine = sessao.cod_cine
WHERE estudio = "FOX"

-- B) Recuperar filmes do cinema "Paulo Afonso" e "Jardins"


SELECT cod_filme, nome_filme FROM
JOIN sessao s
ON sessao.cod_filme = filme.cod_filme
JOIN cinema c
ON cinema.cod_cine = sessao.cod_cine
WHERE c.nome_cine = "Paulo Afonso" OR
c.nome_cine = "Jardins"

-- C) Filmes que estão em exibição em mais de uma sala no mesmo cinema


SELECT nome_cine, nome_filme, COUNT(s.cod_cine) as qtd FROM filme
JOIN sessao s
ON sessao.cod_filme = filme.cod_filme
JOIN cinema c
ON cinema.cod_cine = sessao.cod_cine
WHERE qtd > 1

-- Salas de maior capacidade em cada cinema


SELECT MAX(capacidade), nome_cine, num_sala, capacidade FROM cinema

Você também pode gostar