---
# System prepended metadata

title: Untitled

---

Autor: Raul Brito da Silva
Turma: informática A (manhã)
Número: 40
create table tb_filme
(
id_filme int primary key auto_increment,
nm_filme varchar(255),
dt_lancamento date,
vl_avaliacao decimal(15,2),
bt_disponivel bool
);

create table tb_genero
(
id_genero int primary key auto_increment,
ds_genero varchar(255),
bt_ativo bool
);

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_filme(nm_filme,dt_lancamento,vl_avaliacao,bt_disponivel)
values
	("Vingadores:Ultimato","2014-06-05",7.9,true),
    ("Don't Breathe ","2016-09-08",6.4,false),
    ("O Diário da Princesa","2001-01-18",9.1,true),
    ("Invocação do Mal 2","2016-06-09",4.1,true),
    ("A Maldição da Chorona","2019-04-18",8.9,true);
    
    

insert into tb_genero(ds_genero,bt_ativo)
    values("ação",true),
    ("aventura",true),
    ("comedia",true),
    ("terror",true),
    ("romance",true);


insert into tb_filme_genero(id_filme,id_genero)
values(1,5),
(1,3),
(5,4),
(2,5),
(3,4),
(4,1),
(3,2),
(4,2),
(2,2),
(5,3);

update tb_filme
set nm_filme ='The old Guard'
where id_filme = 2;

update tb_genero
set ds_genero='ação'
where id_genero = 2;

update tb_filme_genero
set id_filme = 2
where id_filme_genero = 2;

delete from tb_filme_genero 
where id_filme_genero=2;

delete from tb_genero
where id_genero=2;

delete from tb_filme
where id_filme=2;

Questão 1

select f.nm_filme,g.ds_genero
from tb_filme_genero  fg
inner join tb_genero   g on fg.id_genero=g.id_genero
inner join  tb_filme   f on fg.id_filme=f.id_filme
order by f.nm_filme;

Questão 2

select f.id_filme, f.nm_filme, g.id_genero,g.ds_genero
from tb_filme_genero  fg
inner join tb_filme f on fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where f.vl_avaliacao > 4 
order by f.nm_filme;

Questão 3

select f.nm_filme, f.vl_avaliacao,f.dt_lancamento
from tb_filme_genero fg
inner join tb_filme f on fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where g.ds_genero='ação' 
order by f.vl_avaliacao;

Questão 4

Considerei aqui apenas 1 genero*/
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 fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where g.ds_genero= 'terror' or g.ds_genero='ação';

Questão 5

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 fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where f.bt_disponivel=true and g.ds_genero='terror';

Questão 6

select g.ds_genero,f.nm_filme
from tb_filme_genero fg
inner join tb_filme f on fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where length(f.nm_filme) > 16;

Questão 7

select f.nm_filme
from tb_filme_genero fg
inner join tb_filme f on fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where f.nm_filme not like 'e%';

Questão 8

select f.nm_filme
from tb_filme_genero fg
inner join tb_filme f on fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where day(f.dt_lancamento) > month(f.dt_lancamento);

Questão 9

select f.nm_filme
from tb_filme_genero fg
inner join tb_filme f on fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where month(f.dt_lancamento) in(02,03,04) and f.bt_disponivel =false;

Questão 10

select f.nm_filme,g.ds_genero
from tb_filme_genero fg
inner join tb_filme f on fg.id_filme=f.id_filme
inner join tb_genero g on fg.id_genero=g.id_genero
where (f.vl_avaliacao)/2 > 3;

Parte 2

create table tb_aluno(
id_aluno int primary key auto_increment,
nm_turma varchar(255),
nr_ano_letivo int,
nm_aluno varchar(200),
nr_chamada int,
ds_sexo varchar(20),
tp_status varchar(1)
);


create table tb_disciplina(
id_disciplina int primary key auto_increment,
nm_disciplina varchar(255),
nm_professor varchar(255)
);

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_aluno) references tb_aluno(id_aluno)on delete cascade,
  foreign key (id_disciplina) references tb_disciplina(id_disciplina)on delete cascade
);

insert into tb_aluno(nm_turma,nr_ano_letivo,nm_aluno,nr_chamada,ds_sexo,tp_status)
values("A",2021,"Gabrielly Gonsalves Santos",10,"feminino","s"),
("B",2019,"Raul Brito da Silva ",40,"Masculino","F"),
("C",2015,"Maria Eduarda Lima Santos ",24,"feminino","F");

insert into tb_disciplina(nm_disciplina,nm_professor)
values("matematica","Pedro"),
("português","Cicera"),
("Biologia","Soraya"),
("Historia","Thiago"),
("Inglês","Simoneto");

insert into tb_boletim(id_aluno,id_disciplina,vl_nota,qtd_faltas)
values(1,1,9.5,0),
(1,2,7.5,1),
(1,3,3,0),
(1,4,6.5,2),
(1,5,9,0),
(2,1,4.5,1),
(2,2,7,3),
(2,3,3.5,4),
(2,4,5,7),
(2,5,7,0),
(3,1,5,2),
(3,2,8,0),
(3,3,2.5,0),
(3,4,7,3),
(3,5,7,0);



update tb_aluno
set nm_aluno='Marcos santos'
where id_aluno=3;

update tb_disciplina
set nm_disciplina= "Geografia"
where nm_professor="Ricardo";

update tb_boletim
set vl_nota =9
where id_boletim=4;

update tb_boletim
set vl_nota =7.5
where id_boletim=7;


delete from tb_boletim
where id_disciplina=2;

delete from tb_disciplina
where nm_disciplina ="biologia";

delete from tb_aluno
where nm_aluno="Gabrielly Gonsalves Santos";

Questão 1

select a.nm_aluno, a.nm_turma, d.nm_disciplina, b.vl_nota
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
order by a.nm_aluno;

Questão 2

select a.nm_aluno, a.nm_turma, d.nm_disciplina, b.vl_nota
from tb_boletim   b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where a.nm_turma ="A" and a.nr_ano_letivo = 2021
order by b.vl_nota desc;

Questão 3

select a.nm_aluno, a.nm_turma, d.nm_disciplina, b.vl_nota
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where b.vl_nota >= 5 and a.nm_aluno="Raul Brito da Silva" and a.nm_turma="B"
order by a.nr_ano_letivo,a.nm_turma,a.nr_chamada;

Questão 4

select a.nm_aluno, a.nm_turma, d.nm_disciplina, b.vl_nota
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where b.vl_nota < 5  and a.nm_aluno="Gabrielly Gonsalves Santos" and a.nm_turma="A"
order by a.nr_ano_letivo,a.nm_turma,a.nr_chamada;

Questão 5

select a.nm_aluno
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where a.tp_status="F";

Questão 6

select upper(a.nm_aluno),lower(nm_professor)
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where b.vl_nota between 4.5 and 7.5; 

Questão 7

select a.nm_aluno,d.nm_disciplina
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where b.qtd_faltas =0;

Questão 8

select a.nm_aluno,a.nr_ano_letivo
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where a.ds_sexo="feminino" and a.nr_ano_letivo < year(now());

Questão 9

select a.nm_aluno
from tb_boletim  b
inner join tb_aluno  a on b.id_aluno=a.id_aluno
inner join tb_disciplina  d on b.id_disciplina = d.id_disciplina
where a.nm_aluno like "%Silva%";