# 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%'
```
{"metaMigratedAt":"2023-06-15T23:25:56.233Z","metaMigratedFrom":"Content","title":"Session One: Recomeçar - Parte 1","breaks":true,"contributors":"[{\"id\":\"f59e6c25-3cb1-4556-be8b-0ad8b709be8c\",\"add\":4835,\"del\":105}]"}