Sem resumo de edição |
|||
| Linha 149: | Linha 149: | ||
<br> | <br> | ||
create view questao14 as ( | |||
SELECT nome, estoque.idtamanho, cor, quantidadedisponivel, localizacaodamercadoria FROM estoque | |||
INNER JOIN mercadorias ON (estoque.codmercadoria = mercadorias.codmercadoria) | |||
INNER JOIN localdamercadoria ON (estoque.idlocal = localdamercadoria.idlocal) | |||
INNER JOIN tamanho ON (estoque.idtamanho = tamanho.idtamanho) | |||
ORDER BY estoque.idlocal); | |||
<br> | |||
== Toda as vendas de um dia (Cliente, Total, Parcelas) == | == Toda as vendas de um dia (Cliente, Total, Parcelas) == | ||
<br> | <br> | ||
create view questao15 as ( | |||
SELECT cli.nome AS cliente, total, numerodeparcelas, horadavenda FROM venda | |||
INNER JOIN clientes ON (venda.idcliente = clientes.idcliente) | |||
INNER JOIN pessoafisica AS cli ON (clientes.cpf = cli.cpf) | |||
INNER JOIN parcelamento ON (venda.idparcela = parcelamento.idparcela) | |||
ORDER BY datadavenda); | |||
<br> | |||
== Todo as mercadorias (Nome, Nome da Marca, Dimensões, Descrição Categoria, Cor, Preço Sugerido) == | == Todo as mercadorias (Nome, Nome da Marca, Dimensões, Descrição Categoria, Cor, Preço Sugerido) == | ||
<br> | <br> | ||
create view questao16 as ( | |||
SELECT nome, nomedamarca, tamanho, dimensoes, observacoes, categoria, cor, genero, precosugerido FROM mercadorias | |||
INNER JOIN marca ON (mercadorias.idmarca = marca.idmarca) | |||
INNER JOIN tamanhosmercadoria ON (mercadorias.codmercadoria = tamanhosmercadoria.codmercadoria) | |||
INNER JOIN genero ON (mercadorias.idgenero = genero.idgenero) | |||
INNER JOIN tamanho ON (tamanhosmercadoria.idtamanho = tamanho.idtamanho) | |||
INNER JOIN categorias ON (mercadorias.idcategoria = categorias.idcategoria) | |||
ORDER BY categoria); | |||
<br> | |||
== Todas as vendas feitas com Nome do Cliente, Vendedor, Total ordenados por Data == | == Todas as vendas feitas com Nome do Cliente, Vendedor, Total ordenados por Data == | ||
<br> | <br> | ||
create view questao17 as ( | |||
SELECT cli.nome AS cliente, fun.nome, total, numerodeparcelas FROM venda | |||
INNER JOIN clientes ON (venda.idcliente = clientes.idcliente) | |||
INNER JOIN funcionario ON (venda.login = funcionario.login) | |||
INNER JOIN pessoafisica AS cli ON (clientes.cpf = cli.cpf) | |||
INNER JOIN pessoafisica AS fun ON (funcionario.cpf = fun.cpf) | |||
INNER JOIN parcelamento ON (venda.idparcela = parcelamento.idparcela) | |||
ORDER BY datadavenda); | |||
<br> | |||
== As mercadorias vendidas com a diferença entre os Preço sugerido x Preço da Mercadoria == | == As mercadorias vendidas com a diferença entre os Preço sugerido x Preço da Mercadoria == | ||
<br> | <br> | ||
create view questao18 as ( | |||
select nome, precosugerido, preco, (preco - precosugerido) from mercadoriasvendidas | |||
inner join mercadorias on (mercadoriasvendidas.codmercadoria = mercadorias.codmercadoria) | |||
inner join tamanhosmercadoria on (mercadoriasvendidas.idtamanho = tamanhosmercadoria.idtamanho) | |||
inner join venda on (mercadoriasvendidas.idvenda = venda.idvenda) | |||
order by datadavenda); | |||
<br> | |||
== Todos os fornecedores ordenados por Razão Social == | == Todos os fornecedores ordenados por Razão Social == | ||
<br> | <br> | ||
create view questao19 as ( | |||
select razaosocial, cnpj, email, telefone1 from fornecedores order by razaosocial); | |||
<br> | |||
== Todas as compras realizadas com Preço de custo acima de R$ 1000,00. == | == Todas as compras realizadas com Preço de custo acima de R$ 1000,00. == | ||
<br> | <br> | ||
create view questao20 as ( | |||
SELECT nome, tamanho, categoria, precodecusto FROM mercadoriascompradas | |||
INNER JOIN mercadorias ON (mercadoriascompradas.codmercadoria = mercadorias.codmercadoria) | |||
INNER JOIN tamanho ON (mercadoriascompradas.idtamanho = tamanho.idtamanho) | |||
INNER JOIN categorias ON (mercadorias.idcategoria = categorias.idcategoria) | |||
WHERE (precodecusto > '1000') order by precodecusto); | |||
<br> | <br> | ||
Edição atual tal como às 01h30min de 18 de agosto de 2013
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
create view questao14 as ( SELECT nome, estoque.idtamanho, cor, quantidadedisponivel, localizacaodamercadoria FROM estoque INNER JOIN mercadorias ON (estoque.codmercadoria = mercadorias.codmercadoria) INNER JOIN localdamercadoria ON (estoque.idlocal = localdamercadoria.idlocal) INNER JOIN tamanho ON (estoque.idtamanho = tamanho.idtamanho) ORDER BY estoque.idlocal);
Toda as vendas de um dia (Cliente, Total, Parcelas)
create view questao15 as ( SELECT cli.nome AS cliente, total, numerodeparcelas, horadavenda FROM venda INNER JOIN clientes ON (venda.idcliente = clientes.idcliente) INNER JOIN pessoafisica AS cli ON (clientes.cpf = cli.cpf) INNER JOIN parcelamento ON (venda.idparcela = parcelamento.idparcela) ORDER BY datadavenda);
Todo as mercadorias (Nome, Nome da Marca, Dimensões, Descrição Categoria, Cor, Preço Sugerido)
create view questao16 as ( SELECT nome, nomedamarca, tamanho, dimensoes, observacoes, categoria, cor, genero, precosugerido FROM mercadorias INNER JOIN marca ON (mercadorias.idmarca = marca.idmarca) INNER JOIN tamanhosmercadoria ON (mercadorias.codmercadoria = tamanhosmercadoria.codmercadoria) INNER JOIN genero ON (mercadorias.idgenero = genero.idgenero) INNER JOIN tamanho ON (tamanhosmercadoria.idtamanho = tamanho.idtamanho) INNER JOIN categorias ON (mercadorias.idcategoria = categorias.idcategoria) ORDER BY categoria);
Todas as vendas feitas com Nome do Cliente, Vendedor, Total ordenados por Data
create view questao17 as ( SELECT cli.nome AS cliente, fun.nome, total, numerodeparcelas FROM venda INNER JOIN clientes ON (venda.idcliente = clientes.idcliente) INNER JOIN funcionario ON (venda.login = funcionario.login) INNER JOIN pessoafisica AS cli ON (clientes.cpf = cli.cpf) INNER JOIN pessoafisica AS fun ON (funcionario.cpf = fun.cpf) INNER JOIN parcelamento ON (venda.idparcela = parcelamento.idparcela) ORDER BY datadavenda);
As mercadorias vendidas com a diferença entre os Preço sugerido x Preço da Mercadoria
create view questao18 as ( select nome, precosugerido, preco, (preco - precosugerido) from mercadoriasvendidas inner join mercadorias on (mercadoriasvendidas.codmercadoria = mercadorias.codmercadoria) inner join tamanhosmercadoria on (mercadoriasvendidas.idtamanho = tamanhosmercadoria.idtamanho) inner join venda on (mercadoriasvendidas.idvenda = venda.idvenda) order by datadavenda);
Todos os fornecedores ordenados por Razão Social
create view questao19 as ( select razaosocial, cnpj, email, telefone1 from fornecedores order by razaosocial);
Todas as compras realizadas com Preço de custo acima de R$ 1000,00.
create view questao20 as ( SELECT nome, tamanho, categoria, precodecusto FROM mercadoriascompradas INNER JOIN mercadorias ON (mercadoriascompradas.codmercadoria = mercadorias.codmercadoria) INNER JOIN tamanho ON (mercadoriascompradas.idtamanho = tamanho.idtamanho) INNER JOIN categorias ON (mercadorias.idcategoria = categorias.idcategoria) WHERE (precodecusto > '1000') order by precodecusto);





