---
# System prepended metadata

title: Final Session | Banco de Dados

---

# 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;
 
```