CREATE TABLE Genero (
    id_genero INT PRIMARY KEY,
    nome VARCHAR(100)
);

CREATE TABLE Filme (
    id_filme INT PRIMARY KEY,
    nome VARCHAR(100),
    duracao INT,
    classificacao INT,
    sinopse TEXT,
    id_genero INT
);

CREATE TABLE Sala (
    id_sala INT PRIMARY KEY,
    numero INT,
    capacidade INT,
    tipo VARCHAR(50)
);

CREATE TABLE Cliente (
    id_cliente INT PRIMARY KEY,
    nome VARCHAR(100),
    email VARCHAR(100),
    telefone VARCHAR(20)
);

CREATE TABLE Funcionario (
    id_funcionario INT PRIMARY KEY,
    nome VARCHAR(100),
    cargo VARCHAR(50),
    salario INT
);

CREATE TABLE Sessao (
    id_sessao INT PRIMARY KEY,
    data_hora DATETIME,
    preco INT,
    id_filme INT,
    id_sala INT,
    id_funcionario INT
);

CREATE TABLE Ingresso (
    id_ingresso INT PRIMARY KEY,
    assento VARCHAR(10),
    valor INT,
    id_cliente INT,
    id_sessao INT
);

CREATE TABLE Pagamento (
    id_pagamento INT PRIMARY KEY,
    forma_pagamento VARCHAR(50),
    data_pagamento DATETIME,
    id_ingresso INT
);

CREATE TABLE Ator (
    id_ator INT PRIMARY KEY,
    nome VARCHAR(100),
    nacionalidade VARCHAR(50)
);

CREATE TABLE Filme_Ator (
    id_filme INT,
    id_ator INT,
    personagem VARCHAR(100)
);

INSERT INTO Genero VALUES
(1, 'Acao'),
(2, 'Comedia'),
(3, 'Terror'),
(4, 'Aventura');

INSERT INTO Filme VALUES
(1, 'Vingadores', 150, 12, 'Heróis salvam o mundo', 1),
(2, 'Minha Mae e uma Peca', 110, 12, 'Uma comedia brasileira', 2),
(3, 'Invocacao do Mal', 120, 16, 'Uma historia de terror', 3),
(4, 'Jurassic Park', 127, 12, 'Aventura com dinossauros', 4);

INSERT INTO Sala VALUES
(1, 1, 100, '3D'),
(2, 2, 80, 'Normal'),
(3, 3, 120, 'IMAX');

INSERT INTO Cliente VALUES
(1, 'Pedro', 'pedro@email.com', '31999990000'),
(2, 'Lucas', 'lucas@email.com', '31988880000'),
(3, 'Gabriel', 'gabriel@email.com', '31977770000');

INSERT INTO Funcionario VALUES
(1, 'Marcos', 'Atendente', 2000),
(2, 'Ana', 'Gerente', 3500),
(3, 'Carlos', 'Operador', 2200);

INSERT INTO Sessao VALUES
(1, '2026-11-13 14:00:00', 30, 1, 1, 1),
(2, '2026-11-13 16:00:00', 25, 2, 2, 2),
(3, '2026-11-13 18:00:00', 35, 3, 3, 3),
(4, '2026-11-13 20:00:00', 30, 4, 1, 1);

INSERT INTO Ingresso VALUES
(1, 'A01', 30, 1, 1),
(2, 'B02', 25, 2, 2),
(3, 'C03', 35, 3, 3),
(4, 'A02', 30, 1, 4);

INSERT INTO Pagamento VALUES
(1, 'Pix', '2026-11-13 13:00:00', 1),
(2, 'Cartao', '2026-11-13 15:00:00', 2),
(3, 'Dinheiro', '2026-11-13 17:00:00', 3),
(4, 'Pix', '2026-11-13 19:00:00', 4);

INSERT INTO Ator VALUES
(1, 'Robert Downey Jr', 'Americana'),
(2, 'Chris Evans', 'Americana'),
(3, 'Paulo Gustavo', 'Brasileira'),
(4, 'Vera Farmiga', 'Americana');

INSERT INTO Filme_Ator VALUES
(1, 1, 'Homem de Ferro'),
(1, 2, 'Capitao America'),
(2, 3, 'Dona Herminia'),
(3, 4, 'Lorraine');

SELECT * FROM Filme;
SELECT * FROM Genero;
SELECT * FROM Sala;
SELECT * FROM Cliente;
SELECT * FROM Funcionario;
SELECT * FROM Sessao;
SELECT * FROM Ingresso;
SELECT * FROM Pagamento;
SELECT * FROM Ator;
SELECT * FROM Filme_Ator;

SELECT * FROM Filme
WHERE classificacao = 12;

SELECT * FROM Filme
WHERE duracao > 120;

SELECT * FROM Cliente
WHERE nome = 'Pedro';

SELECT * FROM Sala
WHERE capacidade >= 100;

SELECT * FROM Funcionario
WHERE cargo = 'Atendente';

SELECT * FROM Sessao
WHERE preco = 30;

SELECT * FROM Ingresso
WHERE valor > 25;

SELECT * FROM Pagamento
WHERE forma_pagamento = 'Pix';

SELECT * FROM Ator
WHERE nacionalidade = 'Americana';

SELECT * FROM Filme
ORDER BY nome;

SELECT * FROM Cliente
ORDER BY nome;

SELECT * FROM Sala
ORDER BY capacidade;

SELECT * FROM Filme
INNER JOIN Genero
ON Filme.id_genero = Genero.id_genero;

SELECT Filme.nome, Genero.nome
FROM Filme
INNER JOIN Genero
ON Filme.id_genero = Genero.id_genero;

SELECT Filme.nome, Sessao.data_hora
FROM Filme
INNER JOIN Sessao
ON Filme.id_filme = Sessao.id_filme;

SELECT Sala.numero, Sessao.data_hora
FROM Sala
INNER JOIN Sessao
ON Sala.id_sala = Sessao.id_sala;

SELECT Cliente.nome, Ingresso.assento
FROM Cliente
INNER JOIN Ingresso
ON Cliente.id_cliente = Ingresso.id_cliente;

SELECT Filme.nome, Ator.nome
FROM Filme
INNER JOIN Filme_Ator
ON Filme.id_filme = Filme_Ator.id_filme
INNER JOIN Ator
ON Filme_Ator.id_ator = Ator.id_ator;

SELECT Ingresso.id_ingresso, Pagamento.forma_pagamento
FROM Ingresso
INNER JOIN Pagamento
ON Ingresso.id_ingresso = Pagamento.id_ingresso;

SELECT Funcionario.nome, Sessao.data_hora
FROM Funcionario
INNER JOIN Sessao
ON Funcionario.id_funcionario = Sessao.id_funcionario;

SELECT Cliente.nome, Filme.nome, Ingresso.valor
FROM Cliente
INNER JOIN Ingresso
ON Cliente.id_cliente = Ingresso.id_cliente
INNER JOIN Sessao
ON Ingresso.id_sessao = Sessao.id_sessao
INNER JOIN Filme
ON Sessao.id_filme = Filme.id_filme;

SELECT Filme.nome, Sessao.preco
FROM Filme
INNER JOIN Sessao
ON Filme.id_filme = Sessao.id_filme
ORDER BY Sessao.preco;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: