TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Exercícios BD

Por:   •  24/11/2015  •  Trabalho acadêmico  •  1.775 Palavras (8 Páginas)  •  210 Visualizações

Página 1 de 8

Atividade Extra – 2º Bimestre

  1. Criem o Banco de Dados ProdutoraFilmes e definam as tabelas abaixo:

[pic 1][pic 2][pic 3]

CREATE DATABASE PRODUTORAFILMES;

USE PRODUTORAFILMES;

CREATE TABLE FILME(

    CODIGO INT NOT NULL AUTO_INCREMENT

    , NOME VARCHAR(50) NOT NULL

    , GENERO VARCHAR(30)

    , DATALANCAMENTO TIMESTAMP

    , CONSTRAINT PRIMARY KEY (CODIGO) );

   

CREATE TABLE ARTISTA(

    CODIGO INT NOT NULL AUTO_INCREMENT

    , NOME VARCHAR(50)

    , DATANASCIMENTO DATE

    , PAISORIGEM VARCHAR(30)

    , CARACTERISTICAS VARCHAR(100)

    , GENERO VARCHAR (30)

    , CONSTRAINT PK_CODIGO PRIMARY KEY (CODIGO));

   

CREATE TABLE FILMEARTISTA(

    CODIGOFILME INT

    , CODIGOARTISTA INT

    , DATAGRAVACAO TIMESTAMP

    , CONSTRAINT FK_CODIGOFILME FOREIGN KEY (CODIGOFILME) REFERENCES FILME (CODIGO)

    , CONSTRAINT FK_CODIGOARTISTA FOREIGN KEY(CODIGOARTISTA) REFERENCES ARTISTA (CODIGO)

    );


  1. Crie uma Procedure para cada uma das tabelas, que irá inserir e atualizar os respectivos registros.

TABELA ARTISTA

CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_ARTISTA_IU`(_CODIGO INT, _NOME VARCHAR(50), DATANASCIMENTO DATE,

                                                                PAISORIGEM VARCHAR(30), CARACTERISTICAS VARCHAR(100), GENERO VARCHAR (30), _OP CHAR(1))

BEGIN

        IF (_OP = 'U' OR _OP ='u') THEN

        UPDATE ARTISTIA SET

                NOME = _NOME,

                DATANASCIMENTO = _DATANASCIMENTO,

                PAISORIGEM = _PAISORIGEM,

                CARACTERISTICAS = _CARACTERISTICAS,

                GENERO = _GENERO

    WHERE

                CODIGO = _CODIGO;

        END IF;

   

    IF (_OP = 'I' OR _OP = 'i') THEN

                INSERT INTO ARTISTA (NOME, DATANASCIMENTO, PAISORIGEM, CARACTERISTICAS, GENERO)

                VALUES (_NOME, _DATANASCIMENTO, _PAISORIGEM, _CARACTERISTICAS, _GENERO);

        END IF;

END

TABELA FILME

CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_FILME_IU`(_CODIGO INT, _NOME VARCHAR(50), _GENERO VARCHAR(30),

                                                                                                                _DATALANCAMENTO DATETIME, _OP CHAR(1))

BEGIN

        IF (_OP = 'U' OR _OP = 'u') THEN

        UPDATE FILME SET

                NOME = _NOME,

                GENERO = _GENERO,

                DATALANCAMENTO = _DATALANCAMENTO

       

        WHERE

                CODIGO = _CODIGO;

        END IF;

   

    IF (_OP = 'I' OR _OP = 'i') THEN

            INSERT INTO FILME (NOME, GENERO, DATALANCAMENTO)

                VALUES (_NOME, _GENERO, _DATALANCAMENTO);

        END IF;    

END

TABELA FILMEARTISTA

CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_FILMEARTISTA_I`(_CODIGOFILME INT, _CODIGOARTISTA INT)

BEGIN

        INSERT INTO FILMEARTISTA (CODIGOFILME, CODIGOARTISTA)

    VALUES (_CODIGOFILME, _CODIGOARTISTA);

END


  1. Crie uma Procedure para cada uma das tabelas, que irá apagar os registros das tabelas, tomando por base a chave primária.

TABELA FILME

DELIMITER $$

USE `produtorafilmes`$$

CREATE PROCEDURE `SP_FILME_D` (_CODIGO INT)

BEGIN

        DELETE FROM FILMERTISTA WHERE CODIGOFILME = _CODIGO;

        DELETE FROM FILME WHERE CODIGO = _CODIGO;

END

$$

DELIMITER;

TABELA ARTISTA

DELIMITER $$

USE `produtorafilmes`$$

CREATE PROCEDURE `SP_ARTISTA_D` (_CODIGO INT)

BEGIN

        DELETE FROM FILMEARTISTA WHERE CODIGOARTISTA = _CODIGO

        DELETE FROM ARTISTA WHERE CODIGO = _CODIGO;

END

$$

DELIMITER;

TABELA FILMEARTISTA

DELIMITER $$

USE `produtorafilmes`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_FILMEARTISTA_D`(_CODIGOFILME INT, CODIGOARTISTA INT)

BEGIN

        DELETE FROM FILMEARTISTA WHERE CODIGOFILME = _CODIGOFILME AND CODIGOARTISTA = _CODIGOARTISTA;

END $$

DELIMITER ;


  1. Crie uma View que exiba os Filmes

CREATE OR REPLACE VIEW `VW_FILME_SELECT` AS

SELECT * FROM FILME;

;

  1. Crie uma View que exiba os Artistas.

CREATE OR REPLACE VIEW `VW_ARTISTA_SELECT` AS

SELECT * FROM ARTISTA;

;

  1. Crie uma View que irá exibir o nome e gênero dos Filmes, e o nome e país dos Artistas que participaram dos respectivos filmes.

CREATE OR REPLACE VIEW `VW_INFOFILMES` AS

        SELECT B.NOME AS NOMEFILME, B.GENERO AS GENEROFILME, c.NOME AS NOMEARTISTA, C.PAISORIGEM

   

    FROM FILMEARTISTA A

    INNER JOIN FILME B ON B.CODIGO = A.CODIGOFILME

    INNER JOIN ARTISTA C ON C.CODIGO = A.CODIGOARTISTA

...

Baixar como (para membros premium)  txt (9.1 Kb)   pdf (150.1 Kb)   docx (21.2 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com