Sem resumo de edição
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 5: Linha 5:
<br>
<br>
  create table bairro (
  create table bairro (
codbairro int primary key,
codbairro int primary key,
bairro varchar(20) not null
bairro varchar(20) not null
  );
  );


Linha 27: Linha 27:
<br>
<br>
  create table cidades (
  create table cidades (
codcidade int primary key,
codcidade int primary key,
cidade varchar(30) not null
cidade varchar(30) not null
  );  
  );  


Linha 49: Linha 49:
<br>
<br>
  create table parcelasareceber (
  create table parcelasareceber (
idvenda int not null references venda (idvenda),
idvenda int not null references venda (idvenda),
numerodaparcela int not null,
numerodaparcela int not null,
valor money not null,
valor money not null,
dataprevista date not null,
dataprevista date not null,
primary key(idvenda,numerodaparcela)
primary key(idvenda,numerodaparcela)
  );
  );
<br>
<br>
Linha 60: Linha 60:


  create table cidadesdoestado (
  create table cidadesdoestado (
codcidade int not null references cidades (codcidade),
codcidade int not null references cidades (codcidade),
uf char(2) not null references estado (uf),
uf char(2) not null references estado (uf),
primary key (codcidade, uf)
primary key (codcidade, uf)
  );
  );


Linha 114: Linha 114:
== Excluir um fornecedor qualquer da Tabela Fornecedores ==
== Excluir um fornecedor qualquer da Tabela Fornecedores ==
<br>
<br>
[[Arquivo:BDEEq10.jpg]]


<br>
== Excluir uma venda qualquer da Tabela Venda ==
== Excluir uma venda qualquer da Tabela Venda ==
<br>
<br>


[[Arquivo:BDEEq11.jpg]]
<br>
== Alterar um Código de Mercadoria da Tabela Mercadorias ==
== Alterar um Código de Mercadoria da Tabela Mercadorias ==
<br>
<br>
[[Arquivo:BDEEq12.jpg]]


<br>
<br>
<br>
* Gerar relatório que mostre:
* Gerar relatório que mostre:
<br>
<br>
== Todas as mercadorias adquiridas ordenadas por data ==
== Todas as mercadorias adquiridas ordenadas por data ==
<br>
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);
<br>
<br>


Linha 130: 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);