# **SESSION ONE: RECOMEÇAR - BANCO DE DADOS**
Author: Igor Lima Charles
N°: 18
Grade: INFOA
# ATIVIDADE 1: TB_FILMES
## Modelagem
```sql=
create table tb_genero (
id_genero int primary key auto_increment,
ds_genero varchar(255),
bt_ativo bool
);
create table tb_filmes (
id_filme int primary key auto_increment,
nm_filme varchar(255),
id_genero int,
dt_lancamento date,
bt_disponivel bool,
vl_avaliacao decimal(15,2),
foreign key (id_genero) references tb_genero (id_genero)
);
insert into tb_genero (ds_genero, bt_ativo)
values
('Ação', true),
('Aventura', true),
('Drama', true),
('Animação', true);
insert into tb_filmes (nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
values
('Mad Max: Estrada da Fúria', 1 , 8.1, true, '2015-05-14'),
('Fuga à Meia-Noite', 1, 7.5, true, '1988-01-01'),
('Baby Driver: Em Ritmo de Fuga', 1, 7.6, true, '2017-07-27'),
('Invasão Zumbi', 1, 7.6, true, '2016-12-23'),
('Arranha-Céu: Coragem sem Limite', 1, 5.8, true, '2018-07-12'),
('Dunkirk', 1, 7.8, true, '2017-07-27'),
('A Teoria de Tudo', 3, 7.7, true,'2015-01-29'),
('Interestelar', 2, 8.6, true, '2014-11-06'),
('Viva - A Vida é uma Festa', 4, 8.4, true, '2018-01-04'),
('Up - Altas Aventuras', 4, 8.2, true, '2009-10-04');
update tb_filmes
inner join tb_genero
set bt_disponivel = false
where id_filme = 10;
update tb_filmes
inner join tb_genero
set vl_avaliacao = 10
where id_filme = 8;
delete from tb_filmes
where id_filme = 4;
delete from tb_filmes
where id_filme = 5
```
## Query SQL: TB_FILMES
```sql=
select * from tb_filmes
inner join tb_genero
order by ds_genero and id_filme;
/* Filmes com genero igual 'Ação' */
select nm_filme
from tb_filmes F
inner join tb_genero G
on G.id_genero = F.id_genero
where G.id_genero = 1;
/*Avaliação maior que 8*/
select nm_filme
from tb_filmes F
inner join tb_genero G
on F.vl_avaliacao
where F.vl_avaliacao > 8;
/* FIlmes que possuem Nome e Genero que contém "A"*/
select nm_filme
from tb_filmes F
inner join tb_genero G
where G.ds_genero like '%a%' or '%A%'
and F.nm_filme like '%a%' or '%A%';
/* Filmes lançados entre 2010 e 2020 com caracteres inferiores a 10 caracteres */
select nm_filme
from tb_filmes F
where F.dt_lancamento
between '2010-01-01' and '2020-12-25'
and length(F.nm_filme) < 10;
/* 5 consultas personalizadas */
select vl_avaliacao
from tb_filmes F
inner join tb_genero G
where F.vl_avaliacao between 7.0 and 9.0;
select ds_genero
from tb_filmes F
inner join tb_genero G
on G.ds_genero = G.id_genero
where G.id_genero = 3;
select dt_lancamento
from tb_filmes F
inner join tb_genero G
where G.id_genero = 3;
select nm_filme
from tb_filmes F
inner join tb_genero G
where F.vl_avaliacao < 7.0;
select nm_filme
from tb_filmes F
inner join tb_genero G
on F.dt_lancamento >= '2018-01-01'
```
# ATIVIDADE 2: TB_ALUNOS
## Modelagem
```sql=
create table tb_turma (
id_turma int primary key auto_increment,
nm_turma varchar(255),
nr_ano_letivo int,
nm_curso varchar(255)
);
create table tb_alunos (
id_aluno int primary key auto_increment,
id_turma int,
ds_sexo varchar(255),
nm_aluno varchar(255),
nr_chamada int ,
tp_status varchar(1),
foreign key (id_turma) references tb_turma (id_turma)
);
insert into tb_turma (nm_turma, nr_ano_letivo, nm_curso)
values ('INFO Y', 2021, 'Informática'),
('ADM X', 2021, 'Administração'),
('ING T', 2021,'Inglês'),
('CV N', 2021, 'Comunicação Visual');
insert into tb_alunos (id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
Values
(1, 'Masculino', 'João Gregorio Branco', 10, 'F' ),
(3, 'Masculino', 'Guilherme da Silva', 05, 'F' ),
(3, 'Feminino', 'Michelle Fonseca', 25, 'F' ),
(1, 'Masculino', 'João Pedro Silva', 28, 'T' ),
(1, 'Masculino', 'Igor Lima Charles', 18, 'F' ),
(3, 'Feminino', 'Letícia Rodriguês', 12, 'F' ),
(4, 'Masculino', 'Nicolas Lima', 40, 'F' ),
(1, 'Feminino', 'Bárbara Lorena', 32, 'T' ),
(1, 'Masculino', 'Yolanda Lombard', 43, 'T');
update tb_alunos
set tp_status = 'T'
where id_aluno = 9;
update tb_alunos
set nm_aluno = 'Yasmin Lombard'
where id_aluno = 10;
delete from tb_alunos
where id_aluno = 2 and 6;
```
## Query SQL: TB_ALUNOS
```sql=
select * from tb_alunos;
/* Selecionar turma, nome e chamada da tabela alunos filtrando por turma. */
select T.nm_turma, A.nm_aluno, A.nr_chamada
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where T.nm_turma like '%INFO Y%';
/* Selecionar todos campos da tabela alunos filtrando por nome e turma de forma parcial. */
select A.*
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where T.nm_turma like '%ING T%'
and A.nm_aluno Like 'Michelle Fonseca';
/* Selecione ano letivo, turma, nome, chamada, sexo da tabela alunos filtrando os frequentes por turma e ano letivo. */
select T.nr_ano_letivo, T.nm_turma, A.nm_aluno, A.nr_chamada, A.ds_sexo
from tb_turma T
inner join tb_alunos A
on T.id_turma = A.id_turma
where A.tp_status = 'F'
and T.nm_turma = 'INFO Y'
and T.nr_ano_letivo = 2021;
/* Selecione nome, sexo da tabela alunos filtrando por ano, turma e sexo. */
select A.nm_aluno, A.ds_sexo
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where A.ds_sexo like 'Feminino'
and T.nm_turma = 'ING T'
and T.nr_ano_letivo = 2021;
/* Crie mais 5 consultas personalizadas */
select nm_aluno
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where A.tp_status = 'T';
select ds_sexo
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where T.nr_ano_letivo = 2021;
select nm_curso
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where T.nr_ano_letivo = 2021;
select nm_aluno
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where A.ds_sexo = 'Masculino'
and T.nm_curso = 'Comunicação Visual';
select A.nm_aluno,
T.nm_turma,
A.nr_chamada
from tb_alunos A
inner join tb_turma T
on A.id_turma = T.id_turma
where A.nm_aluno like 'Y%'
```
{"metaMigratedAt":"2023-06-15T23:24:35.675Z","metaMigratedFrom":"Content","title":"**SESSION ONE: RECOMEÇAR - BANCO DE DADOS**","breaks":true,"contributors":"[{\"id\":\"80bf1c37-2722-44c2-96a3-490c9bac8b2e\",\"add\":6102,\"del\":0}]"}