# Session One: Recomeçar | Banco de Dados
autor: Alan Oliveira Rocha Santiago
turma: InfoB
número: 02
[toc]
## Tabela Filme
### *script*
```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)
);
insert into tb_genero(ds_genero,bt_ativo)
values ('comedia',true),
('terror',true),
('ação',true),
('aventura',true),
('romance',true),
('drama',true),
('suspense',true),
('fantasia',true),
('ficção cientifica',true),
('infantil',true);
insert into tb_filme(nm_filme,id_genero,vl_avaliacao,bt_disponivel,dt_lancamento)
values ('Vingadores ultimato', 3, 10.0, true, '2019-04-25'),
('Debi e loide 2', 1, 8.5, true, '2014-11-13'),
('Barraca do beijo 2', 5, 8.0, true, '2020-07-24'),
('O resgate', 3, 10.0, true, '2020-04-24'),
('Coringa', 6, 9.5, true, '2019-10-03'),
('O protetor 2', 3, 9.0, true, '2018-08-16'),
('Toy story 4', 10, 8.0, true, '2019-06-20'),
('It a coisa', 2, 10.0, true, '2017-09-07'),
('Minha mãe é uma peça 2', 1, 9.5, true, '2016-12-06'),
('Divertida Mente', 10, 8.0, true, '2015-06-19');
update tb_filme
set vl_avaliacao = 7.5
where id_filme = '7';
update tb_filme
set bt_disponivel = false
where id_filme = '1';
delete from tb_filme
where id_filme = '3';
delete from tb_filme
where id_filme = '10';
```
### *select*
```sql=
select F.id_filme,
G.ds_genero,
F.id_filme,
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';
select *
from tb_filme F
inner join tb_genero G
on F.id_genero = G.id_genero
where nm_filme like '%a%'
and ds_genero like '%a%';
select *
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 > 8;
select *
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-01-01'
AND F.nm_filme Not LIKE '__________%';
select *
from tb_filme F
inner join tb_genero G
on F.id_genero = G.id_genero
where F.vl_avaliacao >= 9.5;
select *
from tb_filme F
inner join tb_genero G
on F.id_genero = G.id_genero
where F.nm_filme like '%a'
order by F.dt_lancamento;
select *
from tb_filme F
inner join tb_genero G
on F.id_genero = G.id_genero
where F.dt_lancamento between '2018-07-01' and '2020-10-15';
select *
from tb_filme F
inner join tb_genero G
on F.id_genero = G.id_genero
where G.ds_genero = 'comedia'
and F.dt_lancamento > '2014-08-26';
select *
from tb_filme F
inner join tb_genero G
on F.id_genero = G.id_genero
where F.nm_filme like '%2'
and F.vl_avaliacao >= 9.0;
```
## Tabela Aluno
### *script*
```sql=
create table tb_turma (
id_turma int primary key auto_increment,
nm_turma varchar(100),
nr_ano_letivo int,
nm_curso varchar(100)
);
create table tb_aluno (
id_aluno int primary key auto_increment,
id_turma int,
ds_sexo varchar(100),
nm_aluno varchar(100),
nr_chamada int,
tp_status varchar(100),
foreign key (id_turma) references tb_turma (id_turma)
);
insert into tb_turma (nm_turma, nr_ano_letivo, nm_curso)
values ("infoA", 2021, "informatica"),
("infoB", 2021, "informatica"),
("ingA", 2021, "ingles"),
("ingB", 2021, "ingles"),
("admA", 2021, "administração"),
("admB", 2021, "administração"),
("mecA", 2021, "Mecânica"),
("mecB", 2021, "Mecânica"),
("engA", 2021, "Engenharia"),
("engB", 2021, "Engenharia");
insert into tb_aluno (id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
values(4, "M", "Jair Nilson da Silva", 20, "Frequente"),
(2, "F", "Maria da Silva Siqueira", 30, "Frequente"),
(6, "M", "João Galileu gomes", 22, "Frequente"),
(1, "M", "Francisco Costa Rocha", 13, "Frequente"),
(5, "F", "Marcia Batista Rocha", 28, "Frequente"),
(3, "F", "Helena Lopes Teicheira", 18, "Frequente"),
(10, "F", "Larissa Gomes Nicolau", 25, "Frequente"),
(7, "M", "Marcos Junior Messias", 29, "Frequente"),
(9, "M", "Miltom Elias Moreira", 31, "Frequente"),
(8, "F", "Camile Souza Pereira", 6, "Frequente");
update tb_aluno
set id_turma = 6
where id_aluno = 10;
update tb_aluno
set nr_chamada = 3
where id_aluno = 3;
delete from tb_aluno
where id_aluno = 6;
delete from tb_aluno
where id_aluno = 9;
```
### *select*
```sql=
select T.id_turma,
A .nm_aluno,
A .nr_chamada
from tb_aluno A
inner join tb_turma T
on A .id_turma = T .id_turma;
select A.id_aluno,
A.id_turma,
A.ds_sexo,
A.nm_aluno,
A.nr_chamada,
A.tp_status
from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where A.nm_aluno = 'Francisco Costa Rocha';
select A.id_aluno,
A.id_turma,
A.ds_sexo,
A.nm_aluno,
A.nr_chamada,
A.tp_status
from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where A.id_turma = '2';
select T.nm_turma,
T.nr_ano_letivo,
A.ds_sexo,
A.nm_aluno,
A.nr_chamada
from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where T.nm_turma = 'InfoB'
and T.nr_ano_letivo = 2021;
select A.nm_aluno,
A.ds_sexo
from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where T.nr_ano_letivo = 2021
and T.nm_turma = 'mecA'
and A.ds_sexo= 'M';
select * from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where A.nm_aluno like '%A';
select * from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where nm_curso like 'i%';
select * from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where ds_sexo = 'M';
select * from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where ds_sexo = 'F';
select * from tb_aluno A
inner join tb_turma T
on A.id_turma = T.id_turma
where nr_chamada >= 20;
```