-- EXERCÍCIO
/*
criar a base de dados db_mundo;
criar a table tb_pais   (cd_pais, nm_pais)
criar a table tb_estado (cd_estado, nm_estado, sg_estado, id_pais)
criar a table tb_cidade (cd_cidade, nm_cidade, id_estado)
criar a table tb_bairro (cd_bairro, nm_bairro, id_cidade)
criar a table tb_regiao (cd_regiao, nm_regiao)
alterar a estrutura da tb_estado, inserindo id_regiao
alterar a estrutura da tb_estado, adicionando o campo qt_populacao após 
o campo sg_estado

definir os atributos de acordo com as tables apresentadas e elaborar o
código sql referente ao exercício
*/

create database db_mundo;

use db_mundo;

create table tb_pais (
cd_pais int auto_increment,
nm_pais varchar(60) not null,
primary key (cd_pais),
constraint pais_unico unique(nm_pais)
);

alter table tb_pais add constraint
pais_unico unique(nm_pais);

create table tb_estado (
cd_estado int auto_increment,
nm_estado varchar(60) not null,
sg_estado char(2) not null,
id_pais int not null,
primary key (cd_estado),
foreign key (id_pais) references tb_pais (cd_pais)
);

alter table tb_estado add column
id_regiao int not null;

create table tb_cidade (
cd_cidade int auto_increment,
nm_cidade varchar(80) not null, 
id_estado int not null,
primary key (cd_cidade),
foreign key (id_estado) references tb_estado (cd_estado)
);

alter table tb_cidade change
id_estado id_estado int not null; 

create table tb_bairro (
cd_bairro int auto_increment,
nm_bairro varchar(60) not null,
id_cidade int not null,
primary key (cd_bairro),
foreign key (id_cidade) references tb_cidade (cd_cidade)
);

create table tb_regiao (
cd_regiao int auto_increment,
nm_regiao varchar(30) not null,
primary key (cd_regiao)
);

alter table tb_estado add 
constraint regiao_fk 
foreign key (id_regiao) references tb_regiao (cd_regiao);

alter table tb_estado add column
qt_populacao int not null after sg_estado;