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%";