O documento apresenta um modelo de banco de dados para um sistema de pedidos composto por tabelas de clientes, produtos, vendedores, pedidos e itens de pedido. Ele também fornece exemplos de comandos SQL para criação das tabelas no Interbase e SQL Server e exercícios de consultas como seleção de dados dessas tabelas usando where, between, like e outras cláusulas.
O documento apresenta um modelo de banco de dados para um sistema de pedidos composto por tabelas de clientes, produtos, vendedores, pedidos e itens de pedido. Ele também fornece exemplos de comandos SQL para criação das tabelas no Interbase e SQL Server e exercícios de consultas como seleção de dados dessas tabelas usando where, between, like e outras cláusulas.
O documento apresenta um modelo de banco de dados para um sistema de pedidos composto por tabelas de clientes, produtos, vendedores, pedidos e itens de pedido. Ele também fornece exemplos de comandos SQL para criação das tabelas no Interbase e SQL Server e exercícios de consultas como seleção de dados dessas tabelas usando where, between, like e outras cláusulas.
MER do Sistema de Pedidos Pedido codPedido codCliente (FK) codVendedor (FK) prazoEntrega Cliente codCliente nomeCliente Endereco cidade uf cgc Produto codProduto descricao unidade valor Vendedor codVendedor Nome faixaComissao salrioFixo ItemPedido codProduto (FK) codPedido (FK) qtd Viso Grfica do Exemplo Criao das tabelas do modelo Criao no Interbase CREATE TABLE Cliente ( codCli SMALLINT NOT NULL, nomeCli VARCHAR(20), Endereco VARCHAR(20), cidade varchar(15), CEP varchar(8), UF varchar(2), CGC varchar(20) );
ALTER TABLE Cliente ADD PRIMARY KEY (codCli);
CREATE TABLE Produto ( codProd SMALLINT NOT NULL, nome VARCHAR(20), descricao VARCHAR(20), valorUnitario DECIMAL(6,2) );
ALTER TABLE Produto ADD PRIMARY KEY (codProd); CREATE TABLE Vendedor ( codVend SMALLINT NOT NULL, nome VARCHAR(20), comissao VARCHAR(20), salario DECIMAL(8,2) );
CREATE TABLE ItemPedido ( qtdPedida INTEGER, codPedido SMALLINT NOT NULL, codProd SMALLINT, numitemPedido SMALLINT NOT NULL );
ALTER TABLE ItemPedido ADD PRIMARY KEY (codPedido, numitemPedido); ALTER TABLE Pedido ADD FOREIGN KEY (codVend) REFERENCES Vendedor;
ALTER TABLE Pedido ADD FOREIGN KEY (codCli) REFERENCES Cliente;
ALTER TABLE ItemPedido ADD FOREIGN KEY (codProd) REFERENCES Produto;
ALTER TABLE ItemPedido ADD FOREIGN KEY (codPedido) REFERENCES Pedido; CREATE TABLE Cliente ( codCli SMALLINT NOT NULL, nomeClie VARCHAR(20), Endereco VARCHAR(20), CEP VARCHAR(20), Rua VARCHAR(0), CIDADE VARCHAR(20) ); CREATE TABLE cliente ( codigo_cliente smallint not null unique, nome_cliente char(20), endereco char(30), cidade char(15), CEP char(8), UF char(2), CGC char(20), IE char(20) PRIMARY KEY (codigo_cliente)); SQL Server CREATE TABLE pedido ( num_pedido int not null, prazo_entrega smallint not null, codigo_cliente smallint not null, codigo_vendedor smallint not null, PRIMARY KEY (num_pedido) FOREIGN KEY (codigo_cliente) REFERENCES CLIENTE, FOREIGN KEY (codigo_vendedor) REFERENCES VENDEDOR); SQL Server CREATE TABLE vendedor ( codigo_vendedor smallint not null, nome_vendedor char(20), salario_fixo money, faixa_comissao char(1), PRIMARY KEY (codigo_vendedor)); SQL Server CREATE TABLE produto ( codigo_produto smallint not null, unidade char(3), descricao_produto char(30), val_unit money, PRIMARY KEY (codigo_produto));
SQL Server CREATE TABLE item_do_pedido ( num_pedido int not null, codigo_produto smallint not null, quantidade int, PRIMARY KEY (cod_pedido, item_pedido) FOREIGN KEY (num_pedido) REFERENCES PEDIDO, FOREIGN KEY (codigo_produto) REFERENCES PRODUTO);
SQL Server Uma tabela pode conter apenas uma restrio Chave primria (PRIMARY KEY constraint).
Cada retrio de unicidade (UNIQUE constraint) gera um ndice. Exerccios de consultas 1. Listar todos os produtos com respectivas descries, unidades, valores unitrios 2. Listar o CGC, o nome e o endereo de todos os clientes 3. Selecionando todas as colunas de uma tabela vendedor 1. Listar todos os produtos com respectivas descries, unidades, valores unitrios 2. Listar o CGC, o nome e o endereo de todos os clientes 3. Selecionando todas as colunas de uma tabela vendedor 4. Mudar o cabealho do resultado da consulta anterior numero, nome, rendimentos, comisso 5. Apresentar o resultado dos salrios multiplicados por 2. 6. Listar o num_pedido, o codigo_produto, e a quantidade dos produtos que foram vendidos com 35 unidades.
7. Listar os nomes dos clientes de Niteri 8. Listar os produtos que tenham unidade igual a M e valor unitrio igual a R$ 1,05 da tabela produto 9. Liste os clientes e seus respectivos endereos, que moram em So Paulo ou estejam na faixa de CEP entre 30077000 e 30079000. 10. Mostrar todos os pedidos que no tenham prazo de entrega igual a 15 dias 11. Listar o cdigo e a descrio dos produtos que tenham o valor unitrio na faixa de R$ 0,32 at R$ 2,00. 12. Listar todos os produtos que tenham o seu nome comeando por Q. 13. Listar os vendedores que no comeam por Jo.
Exerccio 1 Listar todos os produtos com respectivas descries, unidades, valores unitrios
SELECT descricao, unidade, valor_unitario FROM produto; Exerccio 2 SELECT Listar o CGC, o nome e o endereo de todos os clientes
SELECT CGC, nome_cliente, endereco FROM cliente;
Exerccio 3 Selecionando todas as colunas de uma tabela vendedor
SELECT * FROM vendedor Resultado: A tabela VENDEDOR inteira Mudar o cabealho do resultado da consulta anterior SELECT codigo_do_vendedor numero, nome_do_vendedor nome, salario_fixo rendimentos, faixa_comissao comissao FROM vendedor
NUMERO NOME RENDIMENTOS COMISSAO 209 Jos 1.800,00 C 111 Carlos 2.490,00 A .... .... .... .... 250 Maurcio 2.930,00 B Apresentar o resultado dos salrios multiplicados por 2.
SELECT nome_vendedor, (salario_fixo * 2) salario_fixo FROM vendedor
NOME_VENDEDOR SALARIO_FIXO Jos 3.600,00 Carlos 4.980,00 ..... ... Maurcio 5.860,00
Listar o num_pedido, o codigo_produto, e a quantidade dos produtos que foram vendidos com 35 unidades.
SELECT num_pedido, codigo_pedido, quantidade FROM item_de_pedido WHERE quantidade = 35
NUMERO_PEDIDO CODIGO_PRODUTO QUANTIDADE 121 31 35 138 77 35 Listar os nomes dos clientes de Niteri
SELECT nome_cliente FROM cliente WHERE cidade = Niteroi;
NOME_CLIENTE Ana Suzana Listar os produtos que tenham unidade igual a M e valor unitrio igual a R$ 1,05 da tabela produto SELECT descricao_produto FROM produto WHERE unidade = M AND val_unit = 1.05;
DESCRICAO_PRODUTO Papel Liste os clientes e seus respectivos endereos, que moram em So Paulo ou estejam na faixa de CEP entre 30077000 e 30079000. SELECT nome_cliente, endereco FROM cliente WHERE (CEP >= 30077000 AND CEP <= 30079000) OR cidade = So Paulo; NOME_CLIENTE ENDERECO_CLIENTE Flvio Jorge Maurcio Rodolfo Beth Lvio Renato Mostrar todos os pedidos que no tenham prazo de entrega igual a 15 dias SELECT num_pedido FROM pedido WHERE NOT (prazo_entrega = 15);
SELECT num_pedido FROM pedido WHERE prazo_entrega <> 15;
Listar o cdigo e a descrio dos produtos que tenham o valor unitrio na faixa de R$ 0,32 at R$ 2,00. SELECT codigo_produto, descricao FROM produto WHERE val_unit BETWEEN 0.32 AND 2.00;
O resultado seria uma tabela com o cdigo e a descrio dos produtos: queijo, chocolate, vinho, linha, cano e papel
Listar todos os produtos que tenham o seu nome comeando por Q. SELECT codigo_produto, descricao FROM produto WHERE decricao_produto LIKE Q%;
Listar os vendedores que no comeam por Jo. SELECT codigo_vendedor, nome_vendedor FROM vendedor WHERE nome_vendedor NOT LIKE Jo%; Mais Exerccios Listar o nome e o endereo de todos os clientes de So Paulo. Mostrar todos os pedidos que tenham prazo de entrega igual a 15 dias. Liste os nomes dos clientes que moram em So Paulo e estejam na faixa de CEP entre 30077000 e 30079000. Listar todos os produtos que tenham o seu nome comeando por M ou N.