---
# System prepended metadata

title: 'Session One: Recomeçar - Parte 1'

---

# Session One: Recomeçar - Parte 1
Autor: Jonathan Fernando Costa Galo

[toc]
# Exercícios Práticos - Modelagens no DB Fiddle

>Criação da Tabela de Filmes
```sql=
CREATE TABLE TB_GENERO(
  id_genero int primary key auto_increment,
  ds_genero  varchar(200),
  bt_ativo  bool
  );
  
CREATE TABLE TB_FILME (
  id_filme int primary key auto_increment,
  nm_filme varchar(200),
  id_genero int,
  vl_avaliacao  decimal(15,2),
  bt_disponivel bool,
  dt_lancamento date,
  foreign key (id_genero) references TB_GENERO (id_genero)
);
```

>Inserir 10 registros na Tabela
```sql=
INSERT INTO TB_GENERO (ds_genero, bt_ativo)
     VALUES ('Ação', true),
            ('Comédia', true),
            ('Drama', true),
            ('Terror', true);
           
INSERT INTO TB_FILME (nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento) 
     VALUES ('Velozes e furiosos 6', 1, 4.7, true, '2013-05-24'),
            ('RED', 1, 4.2, true, '2010-11-12'),
            ('Gente Grande 2', 2, 4.6, true, '2010-09-24'),
            ('A Maldição da Casa Winchester', 4, 3.7,true, '2018-03-01'),
            ('Estrelas Além do Tempo', 3, 4.8, true, '2017-02-02'),
            ('Como Eu Era Antes de Você', 3, 4.8, true, '2016-06-16'),
            ('Charlie´s Angels', 2, 3.4, true, '2019-11-14'),
            ('Sol da Meia Noite', 3, 4.6, true, '2018-03-22');
```

>Códigos para Alterar 2 registros da Tabela (UPDATE)
```sql=
    UPDATE TB_FILME
    SET vl_avaliacao = 4.8
    WHERE id_filme = 4;
    
    UPDATE TB_FILME
    SET bt_disponivel = false
    WHERE id_filme = 5;
```

>Códigos para Remoção de 2 registros na Tabela (DELETE)
```sql=
    DELETE FROM TB_FILME
    WHERE id_filme = 2;
  
    DELETE FROM TB_FILME
    WHERE id_filme = 6;
```

>Códigos para consultar todos os filmes com gênero igual a "Ação"
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
     WHERE G.ds_genero = 'Ação'
```

>Códigos para consultar todos os filmes que possuam o nome e gênero contendo a letra "a"
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
     WHERE F.nm_filme = 'A%' AND G.ds_genero = 'A%'
```

>Códigos para consultar todos os filmes que estejam disponíveis e com avaliação maior que 4.

[//]: # "A avaliação dos filmes da tabela vão de 0 a 5 estrelas"
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
	 WHERE F.bt_disponivel = true AND F.vl_avaliacao > 4;
```

>Códigos para consultar todos os filmes que foram lançados entre 2010 e 2020 com nome de filme
menor que 10 caracteres.
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
	 WHERE F.dt_lancamento BETWEEN '2010-01-01' AND '2020-12-31'
```

>Códigos para criar 5 consultas personalizadas
>Consulta 1
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
	 WHERE F.vl_avaliacao <= 3.5
```
>Consulta 2
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
     WHERE bt_disponivel = false
```
>Consulta 3
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
     WHERE F.dt_lancamento >= '2015-07-03'
```
>Consulta 4
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
     WHERE G.ds_genero = 'Terror'
```
>Consulta 5
```sql=
    SELECT G.ds_genero,
           F.nm_filme,
           F.vl_avaliacao,
           F.bt_disponivel, 
           F.dt_lancamento
      FROM TB_FILME    F
INNER JOIN TB_GENERO   G
        ON F.id_genero = G.id_genero
     WHERE G.ds_genero LIKE '%r%' OR '%a%'
```