# Super Bônus Sql
autor: Luigi da silva coelho
[toc]
## Modelagem 1: Catálogo Loja Apps
> Create Script
```sql=
create table tb_apps (
id_apps int primary key auto_increment,
nm_nome varchar(200),
tp_genero varchar(100),
bt_disponivel_na_apple_store bool,
bt_disponivel_na_google_play bool,
nm_criador varchar(100),
qtd_total_dowloads int,
vl_avaliação decimal(10,2),
qtd_tamanho int,
dt_ultima_atualização date
);
```
> Insert Script
```sql=
insert into tb_apps (nm_nome, tp_genero, bt_disponivel_na_apple_store, bt_disponivel_na_google_play, nm_criador, qtd_total_dowloads, vl_avaliação,
qtd_tamanho, dt_ultima_atualização)
values ('Standoff', 'jogo', true, true, 'AXLEBOLT', 125000000, 4.5, 500, '2021-03-26'),
('among us', 'jogo', true, true, 'innersloth LLC', 1000000000, 3.9, 542, '2021-03-30'),
('ifood delivery de comida e mercado', 'aplicativo', true, true, 'ifood delivery de comida e mercado', 5000000, 4.8, 28, '2021-04-01'),
('Brawl Stars', 'jogo', true, false, 'SuperCell', 350000, 4.4, 59, '2021-03-29');
```
> Select Script
```sql=
-- Consulta por apps que são diferentes de jogos.
select * from tb_apps where tp_genero <> 'jogos';
-- Consulta por apps que são disponíveis na app store e indisponiveis na play store.
select * from tb_apps
where bt_disponivel_na_apple_store = true
and bt_disponivel_na_google_play = false;
-- Consulta por Nomes de apps que contém a letra A.
select*from tb_apps
where nm_nome like 'A%';
```
## Modelagem 2: Países
>Create Script
```sql=
CREATE TABLE tb_paises (
id_paises int primary key auto_increment,
nm_nome varchar(200),
ds_sigla varchar(200),
qtd_populacao int,
nr_area varchar(200),
dt_data_aniversario date,
ds_pib varchar(200),
nm_continente varchar(200),
nm_capital varchar(200),
ds_idiomas varchar(200)
);
```
> Insert Script
```sql=
insert into tb_paises (nm_nome, ds_sigla, qtd_populacao, nr_area, dt_data_aniversario, ds_pib, nm_continente, nm_capital, ds_idiomas)
values
('Brasil', 'Br', 212000000, '8.516.000 km²', '1500-04-22', '1,84 trilhão USD', 'America do Sul', 'Distrito Federal', 'Português e A lingua Brasileira de Libras'),
('Estados Unidos', 'EUA', 326766748, '9.833.517 km²', '1776-07-04', '21,43 trilhões USD', 'America do Norte', 'Washington, D.C.', 'InglÊs'),
('Angola', 'AO', 31830000, '1.247.000 km²', '1975-11-11', '88,82 bilhões USD', 'África', 'Luanda', 'Português');
```
> Select Script
```sql=
-- Consulta por indenpendencia maior que 1900.
select * from tb_paises
where dt_data_aniversario > '1900-01-01';
-- Consulta por países que o pib está em bilhões.
select * from tb_paises
where ds_pib = 'bilhões';
-- Consulta por países que estão na américa do sul.
select * from tb_paises
where nm_continente = 'América do sul';
```
## Modelagem 3: Clube de Futebol
> Create Script
```sql=
create table tb_clubes_futebol(
id_futebol int primary key auto_increment,
nm_nome varchar(255),
ds_sigla varchar(200),
nm_pais varchar(200),
nm_cidade varchar(200),
dt_data date,
ds_total_titulos int(200),
nm_presidente varchar(200),
qtd_capacidade_estadio int(200),
nm_estadio varchar(200)
);
```
> Insert Script
```sql=
insert into tb_clubes_futebol(nm_nome, ds_sigla, nm_pais, nm_cidade, dt_data, ds_total_titulos, nm_presidente, qtd_capacidade_estadio, nm_estadio)
values
('Santos Futebol Clube', 'SFC', 'Brasil', 'Santos', '1912-04-14', 40, 'Andrés Rueda', 16899, 'Urbano Caldeira'),
('Corinthians', 'COR', 'Brasil', 'São Paulo', '1910-09-01', 45, 'Duílio Monteiro Alves', 49205, 'Neo Química Arena'),
('Futbol Club Barcelona', 'FCB', 'Espanha', 'Catalunha', '1889-11-29', 65, 'Joan Laporta', 99000, 'Camp Nou');
```
> Select Script
```sql=
-- Consulta por time que possuem mais de 45 titulos.
Select * from tb_clubes_futebol
where ds_total_titulos > 45;
-- Consulta por times que o país é diferente de Brasil.
Select * from tb_clubes_futebol where nm_pais <> 'Brasil';
-- Consulta por times que a capacidade do estadio for maior que 40 mil.
Select * from tb_clubes_futebol where qtd_capacidade_estadio > 40000;
```
## Modelagem 4: Músicas.
> Create Script
```sql=
create table tb_musica (
id_musica int primary key auto_increment,
nm_nome varchar(100),
nm_artista varchar(100),
nm_album varchar(100),
ds_genero varchar(100),
ds_duracao time,
qtd_likes int,
qtd_views int,
dt_lancamento date
);
```
> Insert Script
```sql=
Insert into tb_musica(nm_nome, nm_artista, nm_album, ds_genero, ds_duracao, qtd_likes, qtd_views, dt_lancamento)
values ('Vida Loka part 1', 'Racionais MCs','Mil Trutas Mil Tretas','RAP','03:22', 43000, 4525242, '2002-04-26'),
('Eu sou 157', 'Racionais MCs','Mil Trutas Mil Tretas', 'RAP',
'07:17', 152000, 17850069, '2002-04-26'),
('OITAVO ANJO', '509-E', 'Provérbios 13', 'RAP', '06:30', 36000, 2312474, '2001-06-25');
```
> Select Script
```sql=
-- Consulta por músicas que no nome não tenha a letra A.
select * from tb_musica where nm_nome not like '%A%';
-- Consulta por músicas onde os likes são maiores que 100 mil e views maior que 10 milhões.
select * from tb_musica where qtd_likes > 100000 and qtd_views > 10000000;
-- Consulta por músicas onde a data de lançamento foi depois dos anos 2000.
select * from tb_musica where dt_lancamento > '2000-01-01';
```
## Modelagem 5: Concessionária
> Create script
```sql=
create table tb_Concessionária (
id_Carros int primary key auto_increment,
nm_Modelo varchar(100),
nm_Marca varchar(100),
dt_AnoFabricacao date,
dt_AnoModelo date,
bt_DirecaoHidra bool,
bt_ArCondicionado bool,
nr_Kilometragem int,
vl_preco int,
ds_cor varchar(20)
);
```
> Insert script
```sql=
insert into tb_Concessionária (nm_Modelo, nm_Marca, dt_AnoFabricacao, dt_AnoModelo, bt_DirecaoHidra, bt_ArCondicionado, nr_Kilometragem, vl_preco, ds_cor)
values ('GM - CHEVROLET OPALA COMODORO/COMOD. SLE 4.1/2.5', 'GM - CHEVROLET', '1975-01-01', '1975-01-01', true, false, 52053, 45000, 'Amarelo'),
('GM - CHEVROLET OPALA CARAVAN L/SL/SS/ 2.5/4.1', 'GM - CHEVROLET', '1975-01-01', '1975-01-01', true, false, 102577, 26000, 'Preto'),
('LAND ROVER RANGE ROVER SPORT SE 2.7 190CV TB DIESEL', 'LAND ROVER', '2020-01-01', '2019-01-01', true, true, 40000, 540000, 'Preto');
```
> Select script
```sql=
-- Consulta por marca de carros da GM - CHEVROLET com direção hidraulica.
select * from tb_Concessionária
where nm_marca = 'GM - CHEVROLET'
and bt_DirecaoHidra = true;
-- Consulta por número de kilometragem de carros menor que 55 mil.
select * from tb_Concessionária
where nr_Kilometragem < 55000;
```
## Modelagem 6: Computador
> Create script
```sql=
create table tb_Computador (
id_Computador int primary key auto_increment,
nm_Marca varchar(50),
nm_Processador varchar(50),
nr_MemoriaRAM int,
nr_Armazenamento int,
nm_SO varchar(50),
bt_VemComOffice bool,
nr_TamanhoTela int,
vl_preco decimal(8,2)
);
```
> Insert script
```sql=
insert into tb_Computador (nm_Marca, nm_Processador, nr_MemoriaRAM, nr_Armazenamento, nm_SO, bt_VemComOffice, nr_TamanhoTela, vl_preco)
values ('PICHAU GAMER', 'AMD RYZEN 7 5800X', 128, 1000, 'Linux', false, 29, 17030.64),
('T-GAMER Poseidon', 'AMD Ryzen 7 5800X', 256, 1000, 'Linux', false, 29, 19705.73),
('T-GAMER Odin', 'Intel i7 10700KF', 256, 1000, 'Windows', true, 22, 9354.40);
```
> Select script
```sql=
-- Consulta por nomes de Sistemas Operacionais que sejam linux e com o preço por ordem decrescente.
select * from tb_Computador
where nm_SO = 'Linux'
Order by vl_preco desc;
-- Consulta por Memorias RAM que sejam maior ou igual a 256GB e que venham com Office.
select * from tb_Computador
where nr_MemoriaRAM >= 256
and bt_VemComOffice = true;
```