Você está na página 1de 3

Disciplina: Bancos de Dados Relacionais e Não-Relacionais (2023)

Exercício da Unidade 1

Código das Tabelas:


CREATE TABLE Cliente (

CodCliente NUMBER(10) NOT NULL,

NomeCliente VARCHAR2(50) NOT NULL,

Endereco VARCHAR2(50) NULL,

Bairro VARCHAR2(20) NULL,

Cidade VARCHAR2(50) NULL,

Estado CHAR(2) NULL,

CONSTRAINT PK_CodCliente PRIMARY KEY (CodCliente)

);

CREATE TABLE Preco (

CorFilme CHAR(2) NOT NULL,

Valor NUMBER(10,2) NOT NULL,

CONSTRAINT PK_CorFilme PRIMARY KEY (CorFilme)

);

CREATE TABLE Genero (

CodGenero NUMBER(3) NOT NULL,

Descricao VARCHAR2(50) NOT NULL,

CONSTRAINT PK_CodGenero PRIMARY KEY (CodGenero)

);

CREATE TABLE Filme (

CodFilme NUMBER(3) NOT NULL,

NomeFilme VARCHAR2(50) NOT NULL,

CorFilme CHAR(2) NOT NULL,

CodGenero NUMBER(3) NOT NULL,

CONSTRAINT PK_CodFilme PRIMARY KEY (CodFilme),

CONSTRAINT FK_CorFilme FOREIGN KEY (CorFilme) REFERENCES Preco (CorFilme),

CONSTRAINT FK_CodGenero FOREIGN KEY (CodGenero) REFERENCES Genero (CodGenero)

);
CREATE TABLE Locacao (

CodCliente NUMBER(10) NOT NULL,

DataLocacao DATE NOT NULL,

CodFilme NUMBER(3) NOT NULL,

DataDevolucao DATE NOT NULL,

CONSTRAINT PK_DataLocacao PRIMARY KEY (DataLocacao),

CONSTRAINT FK_CodCliente FOREIGN KEY (CodCliente) REFERENCES Cliente (CodCliente),

CONSTRAINT FK_CodFilme FOREIGN KEY (CodFilme) REFERENCES Filme (CodFilme)

);

Código das Linhas Inseridas:


INSERT INTO Preço (CorFilme, Valor)

VALUES (BB, 8);

INSERT INTO Preço (CorFilme, Valor)

VALUES (CC, 6);

INSERT INTO Preço (CorFilme, Valor)

VALUES (DD, 4);

INSERT INTO Preço (CorFilme, Valor)

VALUES (EE, 2);

INSERT INTO Filme (CodFilme, NomeFilme, CorFilme, CodGenero)

VALUES (230, 'Alien','AZ',999);

INSERT INTO Filme (CodFilme, NomeFilme, CorFilme, CodGenero)

VALUES (192, 'Duro de Matar','CC',175);

INSERT INTO Filme (CodFilme, NomeFilme, CorFilme, CodGenero)

VALUES (556, 'Indiana Jones','AA',205);

INSERT INTO Filme (CodFilme, NomeFilme, CorFilme, CodGenero)

VALUES (570, 'Pânico na Floresta','DD',666);

INSERT INTO Filme (CodFilme, NomeFilme, CorFilme, CodGenero)

VALUES (910, 'E o vento levou','BB',1);

INSERT INTO Locacao (CodCliente, DataLocacao, CodFilme, DataDevolucao)

VALUES (1,TO_DATE('2023-01-15'),556,TO_DATE('2023-01-22'));

INSERT INTO Locacao (CodCliente, DataLocacao, CodFilme, DataDevolucao)


VALUES (2,TO_DATE('2023-01-15'),910,TO_DATE('2023-01-22'));

INSERT INTO Locacao (CodCliente, DataLocacao, CodFilme, DataDevolucao)

VALUES (3,TO_DATE('2023-01-15'),230,TO_DATE('2023-01-22'));

INSERT INTO Locacao (CodCliente, DataLocacao, CodFilme, DataDevolucao)

VALUES (4,TO_DATE('2023-01-15'),192,TO_DATE('2023-01-22'));

INSERT INTO Locacao (CodCliente, DataLocacao, CodFilme, DataDevolucao)

VALUES (5,TO_DATE('2023-01-15'),570,TO_DATE('2023-01-22'));

Questão 1: Exibir o nome dos filmes e a descrição de seu gênero


select NomeFilme, Descricao

from Filme, Genero

where Filme.CodGenero = Genero.CodGenero

Questão 2: Exibir o nome dos filmes, seu código, e sua data de locação
select Filme.NomeFilme, Filme.CodFilme, Locacao.DataLocacao

from Filme

Join Locacao on Filme.CodFilme = Locacao.CodFilme;

Questão 3: Exibir o nome e preço dos filmes


select Filme.NomeFilme, Preco.Valor

from Filme, Preco

where Filme.CorFilme = Preco.CorFilme

Você também pode gostar