Professional Documents
Culture Documents
Banco de Dados II
Introduo SQL Reviso
Ludmila de Almeida Pedrosa
ludmila.apedrosa@gmail.com
09/08/2011
exemplos
CREATE TABLE
CREATE INDEX
Modificar Objetos
ALTER
exemplos
ALTER TABLE
ALTER INDEX
Excluir Objetos
DROP
exemplos
DROP TABLE
DROP INDEX
09/08/2011
SELECT
INCLUSO
INSERT
ALTERAO
UPDATE
EXCLUSO
DELETE
Problema
Joo o gerente de uma loja de atacado que realiza aproximadamente
100 vendas dirias. Devido grande demanda e necessidade de agilizar
o atendimento aos clientes, ele pretende implantar um sistema para
cadastrar seus produtos e ajudar a controlar melhor o estoque.
Sempre que for realizada uma venda, o sistema dever registrar o cliente que
adquiriu o produto, o produto comprado, e o vendedor envolvido na transao.
necessrio ainda registrar a data da venda e a forma de entrega do pedido e o
frete cobrado.
Uma venda pode conter mais um produto, iguais ou diferentes. Portanto, a
quantidade de cada produto comprado deve ser registrada no ato da venda.
Na hora da compra, os clientes preenchem uma ficha com dados pessoais
como nome, endereo, CPF e RG, e informam tambm dois nmeros de
telefone para contato.
Os vendedores da loja devero ter nome, funo e salrio registrados,
juntamente com o setor no qual atuam.
Informaes como descrio, preo de custo, preo de venda, tipo e cdigo
todos os produtos devem constar no sistema, bem como a quantidade
disponvel em estoque.
09/08/2011
Cliente (codigo, nome, tipo, contrato, cargo, endereco, cidade, cep, fone, fax, obs)
cidade referencia Cidade (codigo)
Produto (codigo, nome, descricao, apresent, venda, custo, quantest, estmin, tipo, situacao, status)
tipo referencia Tipo (codigo)
09/08/2011
FROM
INTO
WHERE
SQL - Consulta
Para selecionar todos os dados (atributos): usar *
SELECT * FROM Cliente
Para selecionar lista de atributos (cdigo, nome e telefone)
de todos os clientes:
SELECT codigo, nome, fone FROM Cliente
Para re-nomear o nome de uma coluna:
SELECT venda AS Preco_de_Venda FROM Produto
09/08/2011
SQL - Consulta
Para exibir colunas calculadas:
SELECT <lista de colunas, expresso> FROM <tabela>
Resultado:
Nome
Quantest
Venda
Total
Toalhas Artex
50
250,00
12.500,00
Iogurte Nestle
200
3,20
640,00
Abajur List
12
364,00
4.368,00
TV Plasma
12
3,65
43,85
Liquidificador
150
92,00
13.800,00
Computador Positivo
1.980,00
1.980,00
SQL - Consulta
Para cruzar dados que esto em tabelas diferentes:
preciso listar as tabelas na clusula FROM.
Usar o mesmo princpio da operao produto cartesiano da lgebra
relacional para selecionar apenas as linhas com cdigos
correspondentes: clusula WHERE
09/08/2011
SQL - Consulta
Observao: para atributos que possuem o mesmo
nome em mais de uma tabela, obrigatrio incluir o
nome da tabela antes do nome do atributo.
SELECT nome, Pedidos.codigo, dataPedido
FROM Pedidos, Cliente
WHERE Pedidos.cliente = Cliente.codigo
SQL - Consulta
Exemplo1: Exibir o nome do funcionrio, salrio, nome do
setor e nome da funo exercida por cada funcionrio.
SELECT S.nome AS Setor, F.Nome , F.Salario, FU.nome AS Funcao
FROM Setor S, Funcionario F, Funcao FU
WHERE S.sigla = F.setor AND
F.funo = FU.codigo
Resultado da consulta:
Setor
Nome
Salario
Funcao
Compra e Venda
Joo da Silva
300,00
Vendedor
Auxiliar de Caixa
Marketing
Maria de Souza
300,00
Administrao
Luiza Costa
950,00
Gerente
Segurana
Francisco da Silva
390,00
Segurana
Compra e Venda
Carla Tavares
290,00
Auxiliar de Caixa
09/08/2011
SQL - Consulta
Exemplo2: Exibir o nome do funcionrio, cidade onde mora
e naturalidade.
SELECT F.Nome, C.nome AS Cidade, N.nome AS Naturalidade
FROM Funcionario F, Cidade C, Cidade N
WHERE F.cidade = C.codigo AND
F.naturalidade = N.codigo
Resultado da consulta:
Nome
Cidade
Naturalidade
Joo da Silva
Joo Pessoa
Joo Pessoa
Maria de Souza
Joo Pessoa
Recife
Luiza Costa
Joo Pessoa
Rio de Janeiro
Francisco da Silva
Joo Pessoa
Hamburgo
Carla Tavares
Joo Pessoa
Santiago
Exerccios de Reviso