Exercícios
Incluir tabela de Bairros e relacionar com Endereços
create table bairro ( codbairro int primary key, bairro varchar(20) not null );
alter table enderecos add column codbairro int null;
Após popular os campos que inicialmente eram nulos, passar para não nulo, pois não daria certo criar o campo não nulo alegando que ele seria vazio para os itens já criados.
alter table enderecos alter column codbairro set not null;
Apagar a coluna bairro na tabela endereços.
alter table enderecos drop column bairro cascade;
Relacionar a tabela bairro com endereços.
ALTER TABLE enderecos ADD CONSTRAINT enderecos_codbairro_fkey FOREIGN KEY (codbairro) REFERENCES bairro (codbairro) MATCH FULL;
Incluir tabela de Cidades e Relacionar com Endereços
create table cidades ( codcidade int primary key, cidade varchar(30) not null );
alter table enderecos add column codcidade int null;
Após popular os campos que inicialmente eram nulos, passar para não nulo, pois não daria certo criar o campo não nulo alegando que ele seria vazio para os itens já criados.
alter table enderecos alter column codcidade set not null;
Apagar a coluna cidade na tabela endereços.
alter table enderecos drop column cidade cascade;
Relacionar a tabela cidade com endereços.
ALTER TABLE enderecos ADD CONSTRAINT enderecos_codcidade_fkey FOREIGN KEY (codcidade) REFERENCES cidades (codcidade) MATCH FULL;
Incluir tabela de Parcelas a Receber
create table parcelasareceber ( idvenda int not null references venda (idvenda), numerodaparcela int not null, valor money not null, dataprevista date not null, primary key(idvenda,numerodaparcela) );
Relacionar Tabela de Estados com Cidades
create table cidadesdoestado ( codcidade int not null references cidades (codcidade), uf char(2) not null references estado (uf), primary key (codcidade, uf) );
Inserir uma mercadoria para dois fornecedores diferentes. Ex: Sapato Democrata para Fornec1 e Fornec2
A mercadoria foi inserida, e não houve problema pois para cada compra há apenas um fornecedor.
Inserir na Tabela Mercadorias Compradas, duas compras para a mesma mercadoria
A mercadoria para duas compras diferentes.
Inserir uma nova mercadoria em Estoque e manter dado anterior
Inserir um novo atributo: QuantMinima na Tabela Mercadorias
Inserir a coluna como nula.
alter table mercadorias add column quantminima int null;
Alterar a coluna para todos os valores existentes.
update mercadorias set quantminima = 0;
Alterar o campo para não nulo.
alter table mercadorias alter column quantminima set not null;
Inserir IdParcela em Mercadorias Compradas
Os passos são os mesmos que no exercício anterior.
alter table compras add column idparcela int references parcelamento (idparcela);
update compras set idparcela = 5;
alter table compras alter column idparcela set not null;
Excluir um fornecedor qualquer da Tabela Fornecedores
Excluir uma venda qualquer da Tabela Venda
Alterar um Código de Mercadoria da Tabela Mercadorias
- Gerar relatório que mostre:
Todas as mercadorias adquiridas ordenadas por data
create view questao13 as ( select mercadoriascompradas.codmercadoria, nome, tamanho, nomedamarca, datadacompra from mercadoriascompradas inner join mercadorias on (mercadoriascompradas.codmercadoria = mercadorias.codmercadoria) inner join tamanho on (mercadoriascompradas.idtamanho = tamanho.idtamanho) inner join marca on (mercadorias.idmarca = marca.idmarca) inner join compras on (mercadoriascompradas.idcompras = compras.idcompras) order by datadacompra);
Todos os saldos dos produtos ordenados por local
Toda as vendas de um dia (Cliente, Total, Parcelas)
Todo as mercadorias (Nome, Nome da Marca, Dimensões, Descrição Categoria, Cor, Preço Sugerido)
Todas as vendas feitas com Nome do Cliente, Vendedor, Total ordenados por Data
As mercadorias vendidas com a diferença entre os Preço sugerido x Preço da Mercadoria
Todos os fornecedores ordenados por Razão Social
Todas as compras realizadas com Preço de custo acima de R$ 1000,00.





