Exercício A


  • 01. Abra seu SGBD
MySQL, PostgreSQL, Oracle, ...


  • 02. Crie a tabela Climas
Create table Climas (
cidade varchar(50),
temp_min float,
temp_max float,
prcp float,
data date);


  • 03. Insira dados coletados na Web sobre as seguintes cidades
Belo Horizonte
insert into climas (cidade, temp_min, temp_max, prcp, data)
values ('Belo Horizonte', 22.0, 14.0, 24.0, '2015-06-21');
Cuiabá
insert into climas (cidade, temp_min, temp_max, prcp, data)
values ('Cuiabá', 31.0, 18.0, 1.0, '2015-06-21');
Curitiba
insert into climas (cidade, temp_min, temp_max, prcp, data)
values ('Curitiba', 20.0, 12.0, 3.0, '2015-06-21');
Fortaleza
insert into climas (cidade, temp_min, temp_max, prcp, data)
values ('Fortaleza', 26.0, 23.0, 11.0, '2015-06-21');
Uberlândia
insert into climas (cidade, temp_min, temp_max, prcp, data)
values ('Uberlândia', 22.0, 4.0, 4.0, '2015-06-21');


  • 04. Crie a tabela Cidades com os seguintes campos:
    • Nome(Str) , Habitantes (Int) , NomeEstado (Str), Aniversário (Date) , Area (Km2) (Float)
Create table Cidades (
Nome varchar(50),
Habitantes Integer,
NomeEstado varchar(30),
Aniversário Date,
Area Float);


  • 05. Insira dados na tabela acima
insert into cidades (Nome, Habitantes, NomeEstado, Aniversário, Area)
values ('Belo Horizonte', 2479175, 'MG', '1897-12-12', 330.95) ;
insert into cidades (Nome, Habitantes, NomeEstado, Aniversário, Area)
values ('Cuiabá', 575480 , 'MT', '1719-04-08', 3538.167) ;
insert into cidades (Nome, Habitantes, NomeEstado, Aniversário, Area)
values ('Fortaleza', 8166.56 , 'CE', '1726-04-13', 314.930) ;
insert into cidades (Nome, Habitantes, NomeEstado, Aniversário, Area)
values ('Uberlândia', 15712 , 'MG', '1888-08-31', 4115822.0) ;
insert into cidades (Nome, Habitantes, NomeEstado, Aniversário, Area)
values ('Curitiba', 1864416 , 'PR', '1693-03-29', 435036) ;


  • 06. Crie os índices nome e Aniversário
CREATE INDEX IndNome
ON Cidades (Nome);
CREATE INDEX IndAniversario
ON Cidades (Aniversário);


  • 07. Altere o nome do Campo Habitantes para NroHabitantes
ALTER TABLE cidades CHANGE Habitantes NroHabitantes varchar(50);


  • 08. Crie a tabela Eventos com os seguintes campos:
    • NomeEvento (Str) , Data (Date) , Horário (Int), Local (Str), Preço (Float)
Create table Eventos (
NomeEvento varchar(50),
Data Date,
Horário Integer,
Local varchar(50),
Preço Float );


  • 09. Insira dados de eventos quaisquer para as cidades
Insert into table EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Lo Borges', '2015-12-22', 21, 'Belo Horizonte', 30.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Sá e Guarabira', '2015-11-12', 22, 'Belo Horizonte', 25.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Jota Quest', '2015-09-12', 21, 'Belo Horizonte', 35.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Alexandre Pires', '2015-08-14', 21, 'Uberlândia', 30.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Só pra contrariar', '2015-10-21', 22, 'Uberlândia', 25.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Lucas Lucco', '2015-07-13', 21, 'Uberlândia', 25.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Lenine', '2015-06-23', 22, 'Curitiba', 35.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Luan Santana', '2015-08-25', 21, 'Curitiba', 35.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Elba Ramalho', '2015-07-22', 21, 'Cuiabá', 25.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Banda Malta', '2015-09-02', 22, 'Cuiabá', 20.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Seu Jorge', '2015-11-11', 22, 'Fortaleza', 30.0);
Insert into EVentos (NomeEvento, Data, Horário, Local, Preço)
values ('Sorriso Maroto', '2015-12-22', 21, 'Fortaleza', 25.0);


  • 10. Gere um relatório mostrando os dados da Cidade
Select * from cidades;


  • 11. Gere um relatório mostrando apenas Nome, Estado e Area das Cidades
Select Nome, Area, NomeEstado from cidades;


  • 12. Gere um relatório mostrando Nome, NomeEstado e Area das Cidades em ordem alfabética de Nome
Select Nome, Area, NomeEstado from cidades
order by Nome;


  • 13. Gere um relatório mostrando Nome, NomeEstado e Area das Cidades em ordem descendente de Nome
Select Nome, Area, NomeEstado from cidades
order by Nome desc;


  • 14. Gere um relatório com as cidades que possuem eventos (Sem duplicidade)
Select distinct local from eventos


  • 15. Gere uma view com as cidades de Minas Gerais
create view ViewCidade AS
select nome
from cidades
where NomeEstado = 'MG'


select * from viewcidades


  • 16. Gere uma view com todos os dados de Cidades (Nome e Data Fundação) com seus eventos
create view ViewEventos AS
select cidades.Nome, cidades.Aniversário, EVentos.NomeEvento, EVentos.Data, EVentos.Horário, EVentos.Local, EVentos.Preço
from Cidades, Eventos
where EVentos.Local = cidades.Nome


select * from viewEventos


  • 17. Exclua a cidade de Curitiba
delete from Cidades where Nome = 'Curitiba'


  • 18. Recupere a tabela com a cidade de Curitiba
Recovery Model Full (ou no mínimo Bulk Logged) = Yes => Possible
SIMPLE = :((


  • 19. Inclua a tabela Estados com os seguintes campos:
    • UF (Str), NomeEstado (Str), Regiao (Str)
create table Estados (
UF Integer,
NomeEstado varchar(50),
Regiao varchar(50) )


  • 20. Insira 2 estados da região sudeste na tabela Estados
insert into Estados (UF, NomeEstado, Regiao)
values (13, 'Minas Gerais', 'Sudeste')
insert into Estados (UF, NomeEstado, Regiao)
values (25, 'São Paulo', 'Sudeste')


  • 21. Gere uma view que mostre os novos dados apenas da Região Sudeste
create view ViewEstados AS
select * from Estados
where regiao = 'Sudeste'


select * from ViewEstados


  • 22. Inclua os demais estados do Brasil
insert into Estados (UF, NomeEstado, Regiao) values (1, 'Acre', 'Norte')
insert into Estados (UF, NomeEstado, Regiao) values (2, 'Alagoas', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (3, 'Amapá', 'Norte')
insert into Estados (UF, NomeEstado, Regiao) values (4, 'Amazonas', 'Norte')
insert into Estados (UF, NomeEstado, Regiao) values (5, 'Bahia', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (6, 'Ceará', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (7, 'Distrito Federal', 'Centro-Oeste')
insert into Estados (UF, NomeEstado, Regiao) values (8, 'Espírito Santo', 'Sudeste')
insert into Estados (UF, NomeEstado, Regiao) values (9, 'Goiás', 'Centro-Oeste')
insert into Estados (UF, NomeEstado, Regiao) values (10, 'Maranhão', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (11, 'Mato Grosso', 'Centro-Oeste')
insert into Estados (UF, NomeEstado, Regiao) values (12, 'Mato Grosso do Sul', 'Centro-Oeste')
insert into Estados (UF, NomeEstado, Regiao) values (14, 'Pará', 'Norte')
insert into Estados (UF, NomeEstado, Regiao) values (15, 'Paraíba', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (16, 'Paraná', 'Sul')
insert into Estados (UF, NomeEstado, Regiao) values (17, 'Pernambuco', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (18, 'Piauí', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (19, 'Rio de Janeiro', 'Sudeste')
insert into Estados (UF, NomeEstado, Regiao) values (20, 'Rio Grande do Norte', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (21, 'Rio Grande do Sul', 'Sul')
insert into Estados (UF, NomeEstado, Regiao) values (22, 'Rondônia', 'Norte')
insert into Estados (UF, NomeEstado, Regiao) values (23, 'Roraima', 'Norte')
insert into Estados (UF, NomeEstado, Regiao) values (24, 'Santa Catarina, 'Sul')
insert into Estados (UF, NomeEstado, Regiao) values (26, 'Sergipe', 'Nordeste')
insert into Estados (UF, NomeEstado, Regiao) values (27, 'Tocantins', 'Norte')


  • 23. Mostre novamente os dados da view Estados
Select * from viewEstados