---
# System prepended metadata

title: 'Session One: Recomeçar | SQL'

---

# Session One: Recomeçar | SQL
Por: Isabelly de Souza Nascimento, 18 - INFO D
[toc]


## Modelagem 1: Sistema de um catálogo de filme no estilo Netflix

>Create Script
```sql=
create table tb_genero(
  id_genero        int primary key auto_increment,
  ds_genero        varchar(100),
  bt_ativo         bool
  );
  
 create table tb_filme(
   id_filme       int primary key auto_increment,
   nm_filme       varchar(100),
   id_genero      int,
   vl_avaliacao   decimal(10,2),
   bt_disponivel  bool,
   dt_lancamento  date,
   foreign key (id_genero)
   references tb_genero(id_genero)
   );
   ```
   
 >Insert Script
  ```sql=
   insert into tb_genero(ds_genero, bt_ativo)
   values('Ação', true);
   
   insert into tb_genero(ds_genero, bt_ativo)
   values('Romance', true);
   
   insert into tb_genero(ds_genero, bt_ativo)
   values('Terror', true);
   
   insert into tb_genero(ds_genero, bt_ativo)
   values('Drama', true);
   
    insert into tb_genero(ds_genero, bt_ativo)
   values('Ficção Científica', true);
   
   
   insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('O Assassino: O Primeiro Alvo', 1, 8.0, true,'2017-09-11');
   
   insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Resgate', 1, 9.0, true,'2020-04-24');
   
   insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Com Amor, Simon', 2, 9.4, true,'2018-03-22');
   
    insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Me Chame Pelo Seu Nome', 4, 9.2, true,'2018-01-08');
   
    insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Fragmentado', 3, 8.9, true,'2017-03-17');
   
   
    insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Mentes Sombrias', 5, 7.4, true,'2018-08-16');
   
    insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('O Ódio que Você Semeia', 4, 9.3, true,'2018-12-06');
   
   
    insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Até o Último Homem', 4, 9.5, true,'2017-01-26');
   
    insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Grese — Nos Tempos da Brilhantina', 2, 8.9, true,'1978-09-14');
   
   
    insert into tb_filme(nm_filme, id_genero, vl_avaliacao, bt_disponivel, dt_lancamento)
   values('Nos', 3, 7.4, true,'2019-03-21');
   ```
   
>Update Script
 ```sql=
  UPDATE tb_filme
  SET nm_filme ='Nós',
      bt_disponivel = false
  WHERE id_filme = 10;
  
  UPDATE tb_filme
  SET nm_filme ='Grease — Nos Tempos da Brilhantina',
      vl_avaliacao = 3.9
  WHERE id_filme = 9;
  ```
  
>Delete Script
``` 
  --DELETE FROM tb_filme
  --WHERE id_filme = 1;
  
  --DELETE FROM tb_filme
  --WHERE id_filme = 7;
  ```
  
  
  >Select Script

 ```sql=
select g.ds_genero,
       f.nm_filme,
       f.vl_avaliacao,
       f.bt_disponivel,
       f.dt_lancamento
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero;
 
 
    select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
  where g.ds_genero = 'Ação';  
  
  
 select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
  where g.ds_genero like '%a%'
  and f.nm_filme like '%a%';  
  
  
select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
  where f.vl_avaliacao >= 8.0;  
  
    
    
select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
    where dt_lancamento between ('2010-1-1') and ('2020-12-31')
    and character_length(nm_filme) < 10;
    
    
select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
  where g.ds_genero not like '%a';
  
  
   select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
    where day(dt_lancamento) between 03 and 15;  
  
  
   select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
  where year(f.dt_lancamento) in (2018);
  
  
   select f.nm_filme,
   ceiling(vl_avaliacao),
   floor(vl_avaliacao)
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
 order
 by vl_avaliacao;  
  
  
   select f.nm_filme
    from tb_filme f
inner join tb_genero g
    on f.id_genero = g.id_genero
  where g.ds_genero not like '%a%'
  and f.nm_filme like '%a%';
```



## Modelagem 2: Sistema de gerencia de informações alunos de uma escola


>Create Script
```sql=
create table tb_turma(
  id_turma        int primary key auto_increment,
  nm_turma        varchar(1),
  nr_ano_letivo   int,
  nm_curso        varchar(100)
  );
  
create table tb_aluno(
  id_aluno       int primary key auto_increment,
  id_turma       int,
  ds_sexo        varchar(100),
  nm_aluno       varchar(100),
  nr_chamada     int,
  tp_status      varchar(1),
  foreign key (id_turma)
  references tb_turma(id_turma)
   );
   ```
   
 >Insert Script
  ```sql=
  insert into tb_turma(nm_turma, nr_ano_letivo, nm_curso)
   values('A', 2019, 'Informática');
   
   insert into tb_turma(nm_turma, nr_ano_letivo, nm_curso)
   values('B', 2021, 'Informática');
   
   insert into tb_turma(nm_turma, nr_ano_letivo, nm_curso)
   values('E', 2020, 'Informática');
   
   insert into tb_turma(nm_turma, nr_ano_letivo, nm_curso)
   values('D', 2018, 'Informática');
   
   
   
   insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 3, 'Feminino', 'Ana Carolina Souza da Cruz', 01, 'F');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 4, 'Feminino', 'Laisa Yukare de Lima Tokuno', 27, 'F');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 3, 'Masculino', 'Luccas Nunes ', 30, 'D');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 2, 'Feminino', 'Melissa Teixeira Soares', 32, 'F');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 1, 'Masculino', 'Gabriel Lima Rodrigues', 14, 'F');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 4, 'Masculino', 'Ryan Rodrigues Oliveira', 45, 'F');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 3, 'Masculino', 'Kauã Lucas Santos', 25, 'D');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 1, 'Feminino', 'Marina Pires Carneiro', 30, 'F');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 2, 'Feminino', 'Beatriz de Lourdes dos Santos', 04, 'F');
   
    insert into tb_aluno(id_turma, ds_sexo, nm_aluno, nr_chamada, tp_status)
   values( 4, 'Masculino', 'Jhean Medeiros Lopes', 23, 'D');
   ```
   
 >Update Script
 ```sql=
    UPDATE tb_turma
  SET nm_turma ='C'
  WHERE id_turma = 3;
  
  UPDATE tb_aluno
  SET nm_aluno ='Beatriz de Lourdes dos Santos da Silveira',
      nr_chamada = 05
  WHERE id_aluno = 9;
  ```
  
  >Delete Script
  ```sql=
  --DELETE FROM tb_aluno
  --WHERE id_aluno = 4;
  
  --DELETE FROM tb_aluno
  --WHERE id_aluno = 8;
  ```
  
  
  >Select Script

 ```sql=
select t.nm_turma,
       t.nr_ano_letivo,
       t.nm_curso,
       a.ds_sexo,
       a.nm_aluno,
       a.nr_chamada,
       a.tp_status
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma;



select t.nm_turma,
       a.nm_aluno,
       a.nr_chamada
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    order
    by t.nm_turma;
    
    
    
  select * from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    where t.nm_turma = 'C'
    order
    by a.nm_aluno;
    
    
    
    select t.nr_ano_letivo,
       t.nm_turma,
       a.nm_aluno,
        a.nr_chamada,
       a.ds_sexo
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    where a.tp_status = 'F'
    and t.nr_ano_letivo >= 2020
    order
    by t.nm_turma;
    
    
    
    select a.nm_aluno,
       a.ds_sexo
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    where t.nm_turma between 'B' and 'D'
    and a.ds_sexo = 'masculino'
    order by  t.nr_ano_letivo;
    
    
    
        select a.nr_chamada
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    where  a.nm_aluno not like '%u%';
    
    
      
     select a.nm_aluno
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    where a.nr_chamada >= 30;
    
    
    
      
  select a.nm_aluno,
        length(a.nm_aluno)
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma;
    
    
    
       select a.nm_aluno
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    where  a.nm_aluno like '%a%'
    and  a.tp_status = 'D';  
    
    
    
       
       select a.nm_aluno
    from tb_aluno a
inner join tb_turma t
    on a.id_turma = t.id_turma
    where  a.nm_aluno not like '%i%'
    or   a.ds_sexo = 'Masculino';
```
