---
# System prepended metadata

title: dados bancarios

---

***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;
