***NOME*** João Gabriel Camargo Ramos
***TURMA*** INFO C
***NUMERO*** 23
# Recomeçar DADOS DE BANCO
```sql
CREATE TABLE tb_genero (
id_genero int primary key auto_increment,
ds_genero varchar(100),
bt_ativo bool
);
CREATE TABLE tb_filmes (
id_filme int primary key auto_increment,
nm_filme varchar(100),
id_genero int,
dt_lancamento date,
bt_disponivel bool,
vl_avaliacao decimal(15,2),
foreign key (id_genero) references tb_genero(id_genero)
);
```
### INSERÇÃO (tb_filme)
```sql=
INSERT INTO tb_filmes (nm_filme,id_genero,dt_lancamento,bt_disponivel,vl_avaliacao)
VALUES ('Avatar',1,'2021-03-04',true,4.4),
('Avenger',3,'2020-12-31',true,2.2),
('Carros',1,'2020-09-24',true,4.8),
('Interestelar',4,'2014-11-06',true,4.9),
('Invocação do Mal',3,'2019-04-25',false,4.7),
('Run',1,'2017-04-06',false,4.5);
```
### ATUALIZAÇÃO DE CAMPOS
```sql=
UPDATE tb_filmes
SET vl_avaliacao = 5.0
WHERE id_filme = 1;
UPDATE tb_genero
SET bt_ativo = false
WHERE id_genero = 1;
```
### REMOÇÃO DE CAMPOS
```sql=
DELETE FROM tb_filmes
WHERE id_filme = 3;
DELETE FROM tb_genero
WHERE id_genero = 2;
```
### CONSULTAS
#### *CONSULTA 1 - Consultar todos os filmes com gênero igual a ‘Ação’.*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE ds_genero = 'Ação';
```
#### *CONSULTA 2 - Consultar todos os filmes que possuam o nome e gênero contendo a letra ‘a’.*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE nm_filme LIKE '%A%'
AND ds_genero LIKE '%A%';
```
#### *CONSULTA 3 - Consultar todos os filmes que estejam disponíveis e com avaliação maior que 8.*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE bt_disponivel = true
AND vl_avaliacao > 8;
```
#### *CONSULTA 4 - Consultar todos os filmes que foram lançados entre 2010 e 2020 com nome de filme menor que 10 caracteres.*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE year(dt_lancamento) BETWEEN '2010' AND '2020'
AND length(nm_filme) < 10;
```
### CONSULTAS PERSONALIDAS
#### *CONSULTA 5*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE nm_filme NOT LIKE 'A%'
ORDER
BY nm_filme DESC;
```
#### *CONSULTA 6*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE day(dt_lancamento) BETWEEN '01' AND '20';
```
#### *CONSULTA 7*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE ds_genero IN('Fantasia','Aventura');
```
#### *CONSULTA 8*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero
WHERE bt_disponivel = true;
```
#### *CONSULTA 9*
```sql=
SELECT *
FROM tb_filmes F
INNER JOIN tb_genero G
ON F.id_genero = G.id_genero;
```
## Tabela Alunos
https://www.db-fiddle.com/
### Script
```sql=
create table tb_turma (
id_turma int primary key auto_increment,
nm_turma varchar(255),
nr_ano_letivo int,
nm_curso varchar(255)
);
create table tb_aluno (
id_aluno int primary key auto_increment,
id_turma int,
ds_sexo varchar(20),
nm_aluno varchar(255),
nr_chamada int,
tp_status varchar(1),
foreign key (id_turma) references tb_turma(id_turma)
);
```
### INSERÇÃO (tb_turma)
```sql=
INSERT INTO tb_turma (nm_turma,nr_ano_letivo,nm_curso)
VALUES ('A',2019,'Informática'),
('B',2019,'Informática'),
('C',2021,'Informática'),
('D',2021,'Informática');
```
### INSERÇÃO (tb_aluno)
```sql=
INSERT INTO tb_aluno (id_turma,ds_sexo,nm_aluno,nr_chamada,tp_status)
VALUES
(1,'Feminino','Juliana',23,'F'),
(1,'Masculino','Sandro',34,'F'),
(1,'Masculino','Kaique',22,'D'),
(2,'Masculino','José',9,'D'),
(2,'Masculino','Lucas',15,'F'),
(2,'Masculino','João',16,'F'),
(3,'Masculino','Nicolas',10,'F'),
(3,'Feminino','Maria',22,'D'),
(3,'Feminino','Julia',20,'F'),
(4,'Feminino','Ana ',1,'F'),
(4,'Masculino','Gabriel', 18,'D'),
(4,'Masculino','Giovanna',20,'D');
```
### ATUALIZAÇÃO DE CAMPOS
```sql=
UPDATE tb_aluno
SET nr_chamada = 12
WHERE id_aluno = 12;
UPDATE tb_turma
SET nm_turma = 'E'
WHERE id_turma = 4;
```
### REMOÇÃO DE CAMPOS
```sql=
DELETE FROM tb_aluno
WHERE id_aluno = 11;
DELETE FROM tb_aluno
WHERE id_aluno = 8;
```
### CONSULTAS
#### *CONSULTA 1 - Selecionar turma, nome e chamada da tabela alunos filtrando por turma.*
```sql=
SELECT A.nm_aluno,
T.nm_turma,
A.nr_chamada
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma
WHERE nm_turma LIKE '%G%';
```
#### *CONSULTA 2 - Selecionar todos campos da tabela alunos filtrando por nome e turma de forma parcial.*
```sql=
SELECT *
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma
WHERE nm_turma LIKE '%O%'
AND nm_aluno LIKE '%A%';
```
#### *CONSULTA 3 - Selecione ano letivo, turma, nome, chamada, sexo da tabela alunos filtrando os
frequentes por turma e ano letivo.*
```sql=
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 tp_status = 'F'
AND nr_ano_letivo = 2021;
```
#### *CONSULTA 4 - Selecione nome, sexo da tabela alunos filtrando por ano, turma e sexo.*
```sql=
SELECT A.nm_aluno,
A.ds_sexo
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma
WHERE nr_ano_letivo = 2019
AND nm_turma = 'B'
AND ds_sexo = 'Masculino';
```
### CONSULTAS PERSONALIZADAS
#### *CONSULTA 5*
```sql=
SELECT *
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma
WHERE nm_turma = 'A';
```
#### *CONSULTA 6*
```sql=
SELECT *
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma
WHERE nm_aluno LIKE '%R%';
```
#### *CONSULTA 7*
```sql=
SELECT *
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma
WHERE ds_sexo = 'Feminino'
ORDER
BY nm_aluno DESC;
```
#### *CONSULTA 8*
```sql=
SELECT *
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma;
```
#### *CONSULTA 9*
```sql=
SELECT A.nm_aluno,
A.nr_chamada,
A.tp_status,
T.nm_turma
FROM tb_aluno A
INNER JOIN tb_turma T
ON A.id_turma = T.id_turma
WHERE nr_ano_letivo = 2019
OR ds_sexo = 'Feminino'
ORDER
BY tp_status ASC;
```