# Session One: Recomeçar | SQL
autor: Isabela Silva Sousa
[toc]
## Modelagem 1: Tabela Gêneros / Tabela Filmes
>[color=red]Create script
```sql=
create table TB_Generos (
ID_Genero int primary key auto_increment,
DS_Genero varchar(100),
VL_Ativo bool
);
create table TB_Filmes (
ID_Filme int primary key auto_increment,
NM_Filme varchar(100),
ID_Genero int,
VL_Avaliacao decimal(15,2),
BT_Disponivel bool,
DT_Lancamento date,
foreign key (ID_Genero)
references TB_Generos (ID_Genero)
);
```
>[color=blue] Insert script
```sql=
insert into TB_Generos (DS_Genero, VL_Ativo)
values ('ação', true),
('Musical', true),
('Romance', true),
('Terror', true);
insert into TB_Filmes (NM_Filme, ID_Genero, VL_Avaliacao, BT_Disponivel, DT_Lancamento)
values ('Grease — Nos Tempos da Brilhantina', 2, 9.8, true, '1978-06-16'),
('Vingadores: Ultimato', 1, 9.8, true, '2019-04-25'),
('Como Eu Era Antes de Você', 3, 9.9, true, '2016-06-16'),
('Sobrenatural: A Última Chave', 4, 8.7, true, '2018-01-16'),
('High School Musical 2', 2, 7.9, true, '2007-10-07'),
('Um espião e meio', 1, 8.7, true, '2016-08-11'),
('Liga da Justiça', 1, 9.8, true, '2017-11-07'),
('Power Rangers - O Filme', 1, 8.7, true, '2017-03-27'),
('Deadpool 2', 1, 9.8, true, '2018-05-17'),
('Mulher-Maravilha', 1, 9.9, true, '2017-06-01'),
('Descendentes 3', 2, 8.5, true, '2019-08-02'),
('Trolls 2', 2, 9.9, true, '2020-10-08'),
('A Cinco Passos de Você', 3, 9.9, true, '2019-03-21'),
('Me Chame Pelo Seu Nome', 3, 8.7, true, '2018-01-18'),
('Annabelle 3: De Volta Para Casa', 4, 8.6, true, '2019-06-27');
```
>[color=yellow] Update script
```sql=
UPDATE TB_Filmes
SET VL_Avaliacao=9.9
WHERE ID_Filme=1;
UPDATE TB_Filmes
SET BT_Disponivel=false
WHERE ID_Filme=11;
DELETE FROM TB_Filmes
WHERE ID_Filme = 9;
DELETE FROM TB_Filmes
WHERE ID_Filme = 11;
```
>[color=purple] Select script
```sql=
SELECT G.DS_Genero,
F.NM_filme,
F.VL_Avaliacao,
F.BT_Disponivel,
F.DT_Lancamento
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE G.DS_Genero = 'Ação'
AND F.BT_Disponivel = true
AND G.VL_Ativo = true
ORDER BY G.DS_Genero,
F.NM_Filme;
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE F.NM_Filme LIKE '%a%'
AND F.ID_Genero LIKE '%a%';
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE F.BT_Disponivel=true
AND F.VL_Avaliacao >8;
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE F.DT_Lancamento BETWEEN "2010"
AND "2020";
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE F.DT_Lancamento BETWEEN "2010" AND "2020"
AND character_length(F.NM_Filme) < 10;
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE year(F.DT_Lancamento) IN (2016);
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE F.VL_Avaliacao = 9.9
OR F.NM_Filme NOT LIKE '%o%';
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE VL_Avaliacao <= 8.7;
SELECT F.NM_Filme
FROM TB_Filmes F
INNER JOIN TB_Generos G
ON F.ID_Genero = G.ID_Genero
WHERE F.ID_Genero= 2;
```
>[color=hotpink] Mer

## Modelagem 2: Tabela Turmas / Tabela Alunos
>[color=red]Create script
```sql=
CREATE TABLE TB_Genero (
NM_Turma varchar(100),
NR_Ano_Letivo int,
NM_Curso varchar(100)
);
CREATE TABLE TB_Alunos (
ID_Aluno int primary key auto_increment,
NM_Aluno varchar(100),
DS_Sexo varchar(100),
ID_Turma int,
NR_Chamada int,
TP_Status varchar(1),
FOREIGN KEY (ID_Turma) REFERENCES TB_Turmas(ID_Turma)
);
```
>[color=blue] Insert script
```sql=
INSERT INTO TB_Turmas (NM_Turma, NR_Ano_Letivo, NM_Curso)
VALUES ('Inglês M', 2020, 'Inglês'),
('Inglês N', 2020, 'Inglês'),
('Info D', 2020, 'Informatica'),
('Info A', 2020, 'Informatica');
INSERT INTO TB_Alunos (NM_Aluno, DS_Sexo, ID_Turma, NR_Chamada, TP_Status)
VALUES ('Ana luiza Partenazi Lopez', 'Feminino', 2, 3, 'F'),
('Isabelly de Souza Nascimento', 'Feminio', 4, 15, 'F'),
('Maria luiza Ribeiro dos Santos', 'Feminino', 1, 24, 'F'),
('Matheus Paulino de Oliveira', 'Masculino', 3, 26, 'F'),
('Leonardo Ribeiro de Souza', 'Masculino', 1, 18, 'F'),
('Luis Ricardo Oliveira', 'Masculino', 4, 24, 'D'),
('Isabela silva sousa', 'Feminino', 1, 17, 'F'),
('Julia Rodriguez Silva', 'Feminino', 2, 18, 'D'),
('João Pedro Rodriguez Oliveira', 'Masculino', 3, 28, 'D'),
('Guilherme Nascimento Gomes', 'Masculino', 1, 15, 'D');
```
>[color=yellow] Update script
```sql=
UPDATE TB_Alunos
SET TP_Status='F'
WHERE ID_Aluno=10;
UPDATE TB_Alunos
SET NR_Chamada=26
WHERE ID_Filme=9;
DELETE FROM TB_Alunos
WHERE ID_Aluno = 8;
DELETE FROM TB_Alunos
WHERE ID_Aluno = 2;
```
>[color=purple] Select script
```sql=
SELECT T.NM_Turma,
T.NR_Ano_Letivo,
T.NM_Curso,
A.NM_Aluno,
A.DS_Sexo,
A.NR_Chamada,
A.TP_Status
FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma;
SELECT T.NM_Turma,
A.NM_Aluno,
A.NR_Chamada
FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma
ORDER BY T.NM_Turma;
SELECT * FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma
WHERE T.NM_Turma = 'I'
ORDER BY A.NM_Aluno;
SELECT T.NR_Ano_Letivo,
T.NM_Turma,
A.NM_Aluno,
A.NR_Chamada,
A.DS_Sexo
FROM TB_Alunos A
INNER JOIN TB_Turmas 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_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma
WHERE T.NM_Turma BETWEEN 'g' and 'f'
AND A.DS_Sexo = 'Masculino'
ORDER BY T.NR_Ano_Letivo;
SELECT A.NR_Chamada
FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma
WHERE A.NM_Aluno NOT LIKE '%M%';
SELECT A.NM_Aluno
FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma
WHERE A.NR_Chamada >= 24;
SELECT A.NM_Aluno,
length(A.NM_Aluno)
FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma;
SELECT A.NM_Aluno
FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma
WHERE A.NM_Aluno LIKE '%e%'
AND A.TP_Status = 'D';
SELECT A.NM_Aluno
FROM TB_Alunos A
INNER JOIN TB_Turmas T
ON A.ID_Turma = T.ID_Turma
WHERE A.NM_Aluno NOT LIKE '%u%'
OR A.DS_Sexo = 'Masculino';
```
>[color=hotpink] Mer

{"metaMigratedAt":"2023-06-15T23:45:11.730Z","metaMigratedFrom":"Content","title":"Session One: Recomeçar | SQL","breaks":true,"contributors":"[{\"id\":\"efa8ac71-fa69-4ab5-8a89-20016d037e45\",\"add\":7055,\"del\":1}]"}