# SESSION DE BANCO DE DADOS PARTE 1
## SCHEMA DA TABELA
```sql=
CREATE TABLE TB_FILMES (
id_filme int primary key auto_increment,
nm_filme varchar (255),
dt_lancamento date,
vl_avaliacao decimal (10,2),
bt_disponivel bool
);
CREATE TABLE TB_GENERO (
id_genero int primary key auto_increment,
nm_genero varchar (255),
bt_ativo bool
);
INSERT INTO TB_FILMES (nm_filme, dt_lancamento, vl_avaliacao, bt_disponivel)
VALUES ("Vingadores", "2013-10-12", 10.0, false),
("Titanic", "2004-04-11", 8.9, false),
("Jojo Rabbit", "2020-05-07", 9.0, true),
("Kimetsu no yaiba: Mugen train", "2020-07-19", 10.0, true),
("Vingadores: Ultimato", "2019-03-15", 9.5, true);
INSERT INTO TB_GENERO (nm_genero, bt_ativo)
VALUES ("Ação", true),
("Terror", false),
("Anime", true),
("História", true),
("Romance", false);
CREATE TABLE TB_FILME_GENERO (
id_filme_genero int primary key auto_increment,
id_filme int,
id_genero int,
foreign key (id_filme) references TB_FILMES (id_filme),
foreign key (id_genero) references TB_GENERO (id_genero)
);
INSERT INTO TB_FILME_GENERO (id_filme, id_genero)
VALUES (1,3),
(1,1),
(2,5),
(2,4),
(3,4),
(3,1),
(4,3),
(4,1),
(5,1),
(5,2);
/* UPDATES */
UPDATE TB_FILMES
SET vl_avaliacao = 6.5
WHERE id_filme = 2;
UPDATE TB_GENERO
SET nm_genero = "Comédia"
WHERE id_genero = 2;
UPDATE TB_FILME_GENERO
SET id_filme = 4
WHERE id_filme_genero = 10;
/* DELETES
DELETE FROM TB_FILMES
WHERE id_filme = 2;
DELETE FROM TB_GENERO
WHERE id_genero = 4;
DELETE FROM TB_FILME_GENERO
WHERE id_filme_genero = 8; */
```
## QUERY DA TABELA
```sql=
/* DML 1 */
SELECT
f.nm_filme,
g.nm_genero
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
ORDER BY f.nm_filme;
/* DML 2 */
SELECT
f.id_filme ,
f.nm_filme,
g.id_genero,
g.nm_genero
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE f.vl_avaliacao >4
ORDER BY f.nm_filme;
/* DML 3 */
SELECT
f.nm_filme,
f.vl_avaliacao,
f.dt_lancamento
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE fg.id_genero = 1
ORDER BY f.vl_avaliacao;
/* DML 4 */
SELECT
f.nm_filme,
f.vl_avaliacao,
f.dt_lancamento,
f.bt_disponivel,
g.nm_genero
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE fg.id_genero = 2 AND 5;
/* DMLS EXTRAS */
SELECT
f.nm_filme,
f.vl_avaliacao,
g.nm_genero
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE fg.id_genero < 3;
SELECT
f.nm_filme,
g.nm_genero
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE f.nm_filme LIKE ('V%');
SELECT
f.nm_filme,
f.dt_lancamento,
g.nm_genero
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE f.bt_disponivel = true;
SELECT
f.nm_filme,
f.dt_lancamento,
f.bt_disponivel
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE f.dt_lancamento > "2020-01-01"
AND f.bt_disponivel = true;
SELECT
f.nm_filme,
g.nm_genero
FROM TB_FILME_GENERO fg
INNER JOIN TB_FILMES f ON f.id_filme = fg.id_filme
INNER JOIN TB_GENERO g ON g.id_genero = fg.id_genero
WHERE g.nm_genero = 5;
```
## LINK PARA O DBFIDDLE
https://www.db-fiddle.com/f/aQv6aXxRcWabr7aV2ywF8z/8