# Session Two: Getting Better | 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(255),
bt_ativo bool
);
create table tb_filme (
id_filme int primary key auto_increment,
nm_filme varchar(255) not null,
dt_lancamento date,
vl_avaliacao decimal(15,2) default 5,
bt_disponivel bool not null
);
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_filme(id_filme) on delete cascade,
FOREIGN KEY (id_genero) REFERENCES tb_genero(id_genero) on delete cascade
);
insert into tb_genero(ds_genero, bt_ativo)
values ('Comédia', true),
('Terror', true),
('Suspense', true),
('Romance', true),
('Ação', true),
('drama', true);
insert into tb_filme (nm_filme, dt_lancamento, vl_avaliacao, bt_disponivel)
values ('Os mercenarios 2', '2012-08-31', 8.5, true),
('Todo mundo em pânico', '2000-09-22', 9.0, true),
('Corra', '2017-05-18', 10.0, true),
('Parasita', '2019-11-07', 10.0, true),
('A culpa e das estrelas', '2014-06-05', 9.0, true);
insert into tb_filme_genero (id_filme, id_genero)
values (1, 5),
(4, 3),
(4, 6),
(5, 1),
(2, 1),
(3, 2),
(3, 3),
(5, 4),
(3, 6),
(4, 1);
update tb_genero
set ds_genero = 'Infantil'
where id_genero = '4';
update tb_filme
set nm_filme = 'Troia'
where id_filme = '2';
update tb_filme_genero
set id_genero = 6
where id_filme_genero = '1';
delete from tb_genero
where id_genero = 4;
delete from tb_filme
where id_filme = 5;
delete from tb_filme_genero
where id_filme_genero = 3;
```
### *select*
```sql=
SELECT f.nm_filme,
g.ds_genero
FROM tb_filme_genero fg
INNER JOIN tb_filme f ON f.id_filme = fg.id_filme
INNER JOIN tb_genero g ON g.id_genero = fg.id_genero
order by nm_filme
;
SELECT f.id_filme,
f.nm_filme,
g.id_genero,
g.ds_genero
FROM tb_filme_genero fg
INNER JOIN tb_filme 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 nm_filme
;
SELECT f.nm_filme,
f.vl_avaliacao,
f.dt_lancamento
FROM tb_filme_genero fg
INNER JOIN tb_filme f ON f.id_filme = fg.id_filme
INNER JOIN tb_genero g ON g.id_genero = fg.id_genero
where g.ds_genero = 'Ação'
order by f.vl_avaliacao;
SELECT f.nm_filme,
f.vl_avaliacao,
f.dt_lancamento,
f.bt_disponivel,
g.ds_genero
FROM tb_filme_genero fg
INNER JOIN tb_filme f ON f.id_filme = fg.id_filme
INNER JOIN tb_genero g ON g.id_genero = fg.id_genero
where g.ds_genero = 'Romance'
or g.ds_genero = 'Comédia';
SELECT f.nm_filme,
f.dt_lancamento,
g.ds_genero
FROM tb_filme_genero fg
INNER JOIN tb_filme f ON f.id_filme = fg.id_filme
INNER JOIN tb_genero g ON g.id_genero = fg.id_genero
where g.ds_genero = 'Comédia'
and f.dt_lancamento > '2017-01-01';
SELECT f.nm_filme,
f.dt_lancamento,
f.vl_avaliacao
FROM tb_filme_genero fg
INNER JOIN tb_filme f ON f.id_filme = fg.id_filme
INNER JOIN tb_genero g ON g.id_genero = fg.id_genero
where f.dt_lancamento < '2017-05-03'
order by f.nm_filme;
SELECT f.nm_filme,
f.dt_lancamento,
f.vl_avaliacao
FROM tb_filme_genero fg
INNER JOIN tb_filme 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 '%o%'
and f.vl_avaliacao > 9;
SELECT f.nm_filme,
f.dt_lancamento,
g.ds_genero
FROM tb_filme_genero fg
INNER JOIN tb_filme f ON f.id_filme = fg.id_filme
INNER JOIN tb_genero g ON g.id_genero = fg.id_genero
where f.dt_lancamento > '2013-01-01'
and f.nm_filme like '%a';
SELECT f.nm_filme,
f.dt_lancamento,
g.ds_genero
FROM tb_filme_genero fg
INNER JOIN tb_filme f ON f.id_filme = fg.id_filme
INNER JOIN tb_genero g ON g.id_genero = fg.id_genero
where f.dt_lancamento between '2014-01-01' and '2027-12-25';
```
## Tabela Aluno
### *script*
```sql=
create table tb_disciplina (
id_disciplina int primary key auto_increment,
nm_disciplina varchar(255),
nm_professor varchar(255)
);
create table tb_aluno (
id_aluno int primary key auto_increment,
nm_turma varchar(255) ,
nr_ano_letivo int,
nm_aluno varchar(255),
nr_chamada int,
ds_sexo varchar(20),
tp_status varchar(1)
);
create table tb_boletim (
id_boletim int primary key auto_increment,
id_aluno int,
id_disciplina int,
vl_nota decimal(15,2),
qtd_faltas int,
FOREIGN KEY (id_disciplina) REFERENCES tb_disciplina(id_disciplina) on delete cascade,
FOREIGN KEY (id_aluno) REFERENCES tb_aluno(id_aluno) on delete cascade
);
insert into tb_disciplina( nm_disciplina,nm_professor)
values ('Matemática', 'Silvia'),
('Ciências', 'Jaluza'),
('Educação Física', 'Camila'),
('Geografia', 'Reginaldo'),
('Artes', 'Ana Claudia');
insert into tb_aluno (nm_turma, nr_ano_letivo, nm_aluno, nr_chamada, ds_sexo,tp_status)
values ('1C', 2021, 'Amanda Oliveira Da Silva', 2, 'Feminino', 'F'),
('8A', 2021, 'Felipe Lopes Da Costa', 10, 'Masculino', 'F'),
('7E', 2020, 'Larissa Nascimento Gomes', 21, 'Feminino', 'F');
insert into tb_boletim (id_aluno, id_disciplina, vl_nota, qtd_faltas)
values (1, 1, 8.0, 2),
(1, 2, 9.0, 3),
(1, 3, 10.0, 0),
(1, 4, 8.5, 1),
(1, 5, 7.0, 6),
(2, 1, 6.5, 4),
(2, 2, 10.0, 0),
(2, 3, 7.5, 7),
(2, 4, 10.0, 1),
(2, 5, 8.0, 0),
(3, 1, 4.0, 0),
(3, 2, 3.0, 4),
(3, 3, 10.0, 1),
(3, 4, 9.5, 2),
(3, 5, 6.0, 10);
update tb_disciplina
set nm_disciplina = 'História'
where id_disciplina = '3';
update tb_aluno
set nm_aluno = 'Marcos Sikeira Junior'
where id_aluno = '2';
update tb_boletim
set vl_nota = 2.0
where id_boletim = '6';
update tb_boletim
set vl_nota = 1.0
where id_boletim = '3';
delete from tb_disciplina
where id_disciplina = 4;
delete from tb_aluno
where id_aluno = 1;
delete from tb_boletim
where id_boletim = 10;
```
### *select*
```sql=
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo ,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
order by A.nm_aluno ;
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo ,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where A.nr_ano_letivo = 2021
and A.nm_turma = '1C'
order by B.vl_nota desc ;
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo ,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where B.vl_nota >= 5.0
and A.nr_ano_letivo = 2021
and A.nm_turma = '8A'
order by A.nr_ano_letivo,
A.nm_turma,
A.nr_chamada;
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where B.vl_nota < 5.0
and A.nr_ano_letivo = 2020
and A.nm_turma = '7E';
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where B.vl_nota > 8.0;
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where A.nm_aluno like '%a'
and A.nr_ano_letivo = 2021;
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where B.vl_nota between '7.0' and '10.0'
order by B.vl_nota;
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where D.nm_disciplina like '%e%';
select A.nm_aluno,
A.nm_turma,
A.nr_ano_letivo,
D.nm_disciplina,
B.vl_nota
from tb_boletim B
inner join tb_aluno A on A.id_aluno = B.id_aluno
inner join tb_disciplina D on D.id_disciplina = B.id_disciplina
where D.nm_disciplina like '%i%'
and B.vl_nota > 7.0
order by D.nm_disciplina;
```
{"metaMigratedAt":"2023-06-16T03:27:47.010Z","metaMigratedFrom":"Content","title":"Session Two: Getting Better | Banco de dados","breaks":true,"contributors":"[{\"id\":\"1ac86fe9-aad5-49b4-b562-fee077af4a56\",\"add\":10099,\"del\":0}]"}