# Final Session | Banco de Dados
**Autor**: Vitório Trindade Santana
**Turma**: Informática C
**Número**: 50
[toc]
## Modelagem 1: Catálogo Loja Apps
> Create Script
```sql=
CREATE TABLE TB_Apps (
ID_Apps int primary key auto_increment,
NM_Nome varchar (40),
DS_Genero varchar (30),
BT_Disponivel_App_store bool,
BT_Disponivel_Google_Play bool,
DT_Ultima_Atualizacao date,
QTD_Tamanho decimal (4, 2),
NM_Criador varchar (30),
VL_Avaliacao decimal (2, 1),
QTD_Total_Downloads int
);
```
> Insert Script
```sql=
INSERT INTO TB_Apps (NM_Nome, DS_Genero, BT_Disponivel_App_store, BT_Disponivel_Google_Play, DT_Ultima_Atualizacao, QTD_Tamanho, NM_Criador, VL_Avaliacao, QTD_Total_Downloads)
values ('Discord', 'Comunicação', true, true, '2021-04-01', 67.04, 'Discord Inc.', 4.5, 100000000),
('Netflix', 'Entreterimento', true, true, '2021-04-07', 18.37, 'Netflix, Inc.', 4.4, 1000000000),
('Instagram', 'Social', true, true, '2021-04-12', 35.81, 'Instagram', 4.4, 1000000000);
```
> Select Script
```sql=
-- Consulta por aplicativos com mais de 30mb e uma avaliação maior que 4
SELECT NM_Nome,
DS_Genero
FROM TB_Apps
WHERE QTD_Tamanho > 30
AND VL_Avaliacao > 4;
-- Consulta por aplicativos que tenham um total de downloads maior ou igual que um bilhão ou que o gênero seja comunicação
SELECT NM_Nome,
QTD_Total_Downloads
FROM TB_Apps
WHERE QTD_Total_Downloads >= 1000000000
OR DS_Genero IN ('Comunicação');
```
## Modelagem 2: Países
> Create script
```sql=
CREATE TABLE TB_Paises (
ID_Paises int primary key auto_increment,
NM_Nome varchar (30),
NM_Sigla varchar (10),
QTD_Populacao int,
QTD_Area int,
DT_Data_Aniversario date,
VL_Pib decimal (15, 2),
NM_Continente varchar (20),
NM_Capital varchar (20),
DS_Idioma varchar (20)
);
```
> Insert script
```sql=
INSERT INTO TB_Paises (NM_Nome, NM_Sigla, QTD_Populacao, QTD_Area, DT_Data_Aniversario, VL_Pib, NM_Continente, NM_Capital, DS_Idioma)
values ('Peru', 'PE', 32510000, 1285000, '2021-07-28', 1270000000, 'América', 'Lima', 'Castelhano'),
('Brasil', 'BR', 212000000, 851600, '2021-09-07', 7400000000 , 'América', 'Brasília', 'Português Brasileiro'),
('Nova Zelândia', 'NZ', 4917000, 268.021, '2021-09-26', 1158640000, 'Oceania', 'Wellington', 'Inglês');
```
> Select script
```sql=
-- Consulta por países que tenham a data de aniversário entre junho e julho e que tenham uma população maior que 30 milhões de habitantes.
SELECT *
FROM TB_Paises
WHERE DT_Data_Aniversario between '2021-06-01' and '2021-07-30'
AND QTD_Populacao > 30000000;
-- Consulta por países que tenham uma populacação maior que 20 milhões de habitantes e que são da América.
SELECT *
FROM TB_Paises
WHERE QTD_Populacao > 20000000
AND NM_Continente IN ('América');
```
## Modelagem 3: Clube Futebol
> Create script
```sql=
CREATE TABLE TB_Clube_de_Futebol (
ID_Clube_de_Futebol int primary key auto_increment,
NM_Nome varchar(50),
NM_Sigla varchar(10),
NM_Pais varchar(40),
NM_Cidade varchar(40),
DT_Data_Fundacao date,
QTD_Total_Titulos int,
NM_Presidente varchar(70),
QTD_Capacidade_Estadio int,
NM_Estadio varchar(100)
);
```
> Insert script
```sql=
INSERT INTO TB_Clube_de_Futebol (NM_Nome, NM_Sigla, NM_Pais, NM_Cidade, DT_Data_Fundacao, QTD_Total_Titulos, NM_Presidente, QTD_Capacidade_Estadio, NM_Estadio)
values ('Sao Paulo Futebol Clube','SPFC','Brasil','São Paulo','1930-01-25',41,'Julio Casares', 66795, 'Morumbi'),
('LIverpool', 'L.F.C','inglaterra','Liverpool', '1892-06-03', 63 ,'Peter Moore', 53594, 'Anfield'),
('Paris Saint-Germain', 'PSG', 'França', 'Paris', '1970-08-12', 44, 'Nasser Al-Khelaif', 48583, 'Parc de Princes');
```
> Select script
```sql=
-- Consultar os clubes de futebol que tenham mais que 30 títulos e que o nome do país comece com "F".
SELECT NM_nome ,NM_Pais
FROM TB_Clube_de_Futebol
WHERE QTD_Total_titulos > 30
AND NM_Pais like 'F%';
-- Consultar os clubes de futebol que tenham mais que 50 titulos ou que a capacidade do estádio seja maior que 50 mil.
SELECT *
FROM TB_Clube_de_Futebol
WHERE QTD_Total_Titulos > 50
OR QTD_Capacidade_Estadio > 50000;
```
## Modelagem 4: Música
> Create script
```sql=
CREATE TABLE TB_Musica (
ID_Musica int primary key auto_increment,
NM_Nome varchar (20),
NM_Artista varchar (15),
NM_Album varchar (20),
DS_Genero varchar (20),
DT_Data_Lancamento date,
QTD_Total_Views int,
QTD_Duracao varchar (10)
);
```
> Insert script
```sql=
INSERT INTO TB_Musica (NM_Nome, NM_Artista, NM_Album, DS_Genero, DT_Data_Lancamento, QTD_Total_Views, QTD_Duracao)
values ('Ballbreaker', 'AC/DC', 'Ballbreaker', 'Hard rock', '1995-09-26', 1627638, '4:31'),
('Tusk', 'Fleetwood Mac', 'Tusk', 'Pop rock', '1979-10-12', 6409042, '3:18'),
('Sorairo Days', 'Shoko Nakagawa', 'Big Bang!!!', 'Pop japonês', '2014-04-30', 3472287, '4:12');
```
> Select script
```sql=
-- Consultar músicas que tenham o gênero rock e que a data de lançamento esteja entre 01/01/1975 e 01/01/2000.
SELECT *
FROM TB_Musica
WHERE DS_Genero like '%rock%'
AND DT_Data_Lancamento BETWEEN '1975-01-01' AND '2000-01-01';
-- Consultar músicas que tenham mais de um milhão de views e que tenham 4 minutos.
SELECT NM_Nome,
QTD_Total_Views,
QTD_Duracao
FROM TB_Musica
WHERE QTD_Total_Views > 1000000
AND QTD_Duracao like '%4:%';
```
## Modelagem 5: Concessionária
> Create script
```sql=
CREATE TABLE TB_Concessionaria (
ID_Concessionaria int primary key auto_increment,
NM_Modelo varchar (20),
NM_Marca varchar (20),
DT_Ano_Fabricacao date,
DT_Ano_Modelo date,
BT_Possui_Direcao_Hidraulica bool,
BT_Possui_Ar_Condicionado bool,
QTD_Kilometragem int,
VL_Preco decimal (10, 2),
DS_Cor varchar (20)
);
```
> Insert script
```sql=
INSERT INTO TB_Concessionaria (NM_Modelo, NM_Marca, DT_Ano_Fabricacao, DT_Ano_Modelo, BT_Possui_Direcao_Hidraulica, BT_Possui_Ar_Condicionado, QTD_Kilometragem, VL_Preco, DS_Cor)
values ('Corsa wind', 'Chevrolet', '1994-03-25', '1995-03-25', false, false, 356670, 3576.90, 'Preto'),
('Punto ELX', 'Fiat', '2010-02-27', '2010-04-15', true, false, 120430, 19570.90, 'Branco/Preto'),
('Civic', 'Honda', '2002-01-12', '2002-03-15', false, false, 234970, 12790, 'Preto');
```
> Select script
```sql=
-- Consultar um carro que tenha direção hidráulica e tenha um preço menor que 25 mil.
SELECT *
FROM TB_Concessionaria
WHERE BT_Possui_Direcao_Hidraulica IS true
AND VL_Preco < 25000;
-- Consultar um carro que tenha uma kilometragem menor que 250 mil km ou que tenha um preço menor que 15 mil.
SELECT NM_Modelo,
NM_Marca,
QTD_Kilometragem
FROM TB_Concessionaria
WHERE QTD_Kilometragem < 250000
OR VL_Preco < 15000;
```
## Modelagem 6: Computador
> Create script
```sql=
CREATE TABLE TB_Computador (
ID_Computador int primary key auto_increment,
NM_Marca varchar (20),
NM_Processador varchar (20),
QTD_Memoria_Ram int,
QTD_Armazenamento int,
NM_Sistema_Operacional varchar (30),
BT_Vem_com_Office bool,
QTD_Tamanho decimal (3,1),
VL_Preco decimal (10,2)
);
```
> Insert script
```sql=
INSERT INTO TB_Computador (NM_Marca, NM_Processador, QTD_Memoria_Ram, QTD_Armazenamento, NM_Sistema_Operacional, BT_Vem_Com_Office, QTD_Tamanho, VL_Preco)
values ('Lenovo', 'Ryzen 5 3600', 12, 240, 'Windows 10 Pro', true, 16.5, 3400),
('Asus', 'Intel Core i5 9400f', 16, 500, 'Windows 7', true, 17, 2800),
('Acer', 'Ryzen 5 2500u', 8, 1000, 'Windows 10 Home', true, 15, 2400);
```
> Select script
```sql=
-- Consultar um computador que venha com Office e tenha um preço menor que 3 mil.
SELECT *
FROM TB_Computador
WHERE BT_Vem_com_Office IS true
AND VL_Preco < 3000;
-- Consultar um computador que tenha um armazenamento maior ou igual que 500gb, um tamanho maior que 16 e mais que 12gb de ram .
SELECT *
FROM TB_Computador
WHERE QTD_Armazenamento > 500
AND QTD_Tamanho > 16
AND QTD_Memoria_Ram > 12;
```