---
# System prepended metadata

title: SESSION DE BANCO DE DADOS PARTE 1

---

# 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