***NOME*** João Gabriel Camargo Ramos
***TURMA*** INFO C
***NUMERO*** 23
# dados bancarios
```sql=
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
);
```
### Atualização
```sql=
UPDATE tb_filme
SET vl_avaliacao = 5.0
WHERE id_filme =4;
UPDATE tb_genero
SET bt_ativo = false
WHERE id_genero = 1;
UPDATE tb_filme_genero
SET id_genero = 3
WHERE id_filme_genero = 10;
```
### Remoção
```sql=
DELETE FROM tb_filme
WHERE id_filme = 3;
DELETE FROM tb_genero
WHERE id_genero = 4;
DELETE FROM tb_filme_genero
WHERE id_filme_genero = 9;
```
### Pesquisas
```sql=
-- EXERCÍCIO 1
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;
-- EXERCÍCIO 2
SELECT f.id_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 vl_avaliacao > 4
ORDER
BY nm_filme;
-- EXERCÍCIO 3
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 ds_genero = 'Ação'
ORDER
BY vl_avaliacao;
-- EXERCÍCIO 4
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 ds_genero IN ('Romance','Comédia');
-- EXERCÍCIO 5
SELECT *
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 bt_disponivel = true;
-- EXERCÍCIO 6
SELECT f.nm_filme,
g.ds_genero,
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 f.nm_filme LIKE '%S%'
ORDER
BY f.dt_lancamento DESC;
-- EXERCÍCIO 7
SELECT f.vl_avaliacao,
g.ds_genero,
f.nm_filme
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 IN ('Ação','Aventura')
ORDER
BY f.nm_filme DESC;
-- EXERCÍCIO 8
SELECT g.ds_genero,
f.nm_filme
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
OR g.ds_genero IN ('Ação','Aventura')
OR f.nm_filme LIKE '% %';
-- EXERCÍCIO 9
SELECT g.bt_ativo,
f.bt_disponivel,
f.nm_filme
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 = 5
ORDER
BY f.bt_disponivel DESC;
```
## Tabela Alunos
> [color=purple]
> link: https://www.db-fiddle.com/f/kWpUHxR3WFZum6tS4jS7Ns/6
### Script
```sql=
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(50),
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
);
```
### Inserção
```sql=
INSERT INTO tb_aluno (nm_turma,nr_ano_letivo,nm_aluno,nr_chamada,ds_sexo,tp_status)
VALUES
('A',2020,'Otavio',23,'Masculino','F'),
('A',2021,'Maria',32,'Feminino','F'),
('C',2021,'Rayssa', 30, 'Feminino','D');
INSERT INTO tb_disciplina (nm_disciplina,nm_professor)
VALUES
('Biologia','Cris'),
('Matemática','Priscilla'),
('Geografia','George'),
('Português','Solange'),
('História','Marcelo');
INSERT INTO tb_boletim (id_aluno,id_disciplina,vl_nota,qtd_faltas)
VALUES
(1,1,8.9,3),
(1,2,9.0,1),
(1,3,6.3,0),
(1,4,10,0),
(1,5,2.2,6),
(2,1,3.4,2),
(2,2,5,2),
(2,3,10,2),
(2,4,10,2),
(2,5,1,2),
(3,1,10,0),
(3,2,10,0),
(3,3,10,0),
(3,4,10,0),
(3,5,10,0);
```
### Atualização
```sql=
UPDATE tb_aluno
SET nm_aluno = 'Vitor Hugo'
WHERE id_aluno = 1;
UPDATE tb_disciplina
SET nm_disciplina = 'Espanhol'
WHERE id_disciplina = 4;
UPDATE tb_boletim
SET vl_nota = 8
WHERE id_boletim = 3;
UPDATE tb_boletim
SET vl_nota = 7.8
WHERE id_boletim = 6;
```
### Remoção
```sql=
DELETE FROM tb_aluno
WHERE id_aluno = 1;
DELETE FROM tb_disciplina
WHERE id_disciplina = 5;
DELETE FROM tb_boletim
WHERE id_boletim = 3;
```
### Pesquisas
```sql=
-- EXERCÍCIO 1
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;
-- EXERCÍCIO 2
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_turma = 'A' AND a.nr_ano_letivo = 2021
ORDER
BY b.vl_nota DESC;
-- EXERCÍCIO 3
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
ORDER
BY a.nr_ano_letivo,
a.nm_turma,
a.nr_chamada;
-- EXERCÍCIO 4
SELECT a.nm_aluno,
a.nm_turma,
a.nr_ano_letivo
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;
-- EXERCÍCIO 5
SELECT *
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 >= 9
ORDER
BY a.nm_aluno,
a.nm_turma,
b.id_boletim;
-- EXERCÍCIO 6
SELECT a.nm_aluno,
a.ds_sexo,
d.nm_disciplina,
a.tp_status
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 '%K%';
-- EXERCÍCIO 7
SELECT a.nm_aluno,
a.ds_sexo,
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.tp_status = 'D';
-- EXERCÍCIO 8
SELECT d.nm_professor,
d.nm_disciplina
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 = 'Biologia';
-- EXERCÍCIO 9
SELECT a.nm_aluno,
a.ds_sexo,
b.qtd_faltas,
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.qtd_faltas = 3;