You are on page 1of 8

09/08/2011

Banco de Dados II
Introduo SQL Reviso
Ludmila de Almeida Pedrosa
ludmila.apedrosa@gmail.com

Linguagem SQL Reviso


SQL - Structured Query Language:
Desenvolvida no incio da dcada de 80.

Por que a SQL to importante?


Declarada como padro pelo American Nacional Standarts Institute
(ANSI) e pela International Organization for Standardization (ISO).
A maioria dos sistemas modernos de gerncia de bancos de dados
se baseia no padro da linguagem SQL.
Exemplo de SGBDs, lideres de mercado, que usam a linguagem
SQL: Oracle, MS SQL Server, DB2, MySQL, Informix, etc.

09/08/2011

Linguagem SQL Reviso


Existem dois aspectos na gerncia de dados:
A definio dos dados (DDL - Data Definition Language).
A manipulao dos dados (DML Data Manipulation Language)

Definio de Dados (DDL):


Informa ao SGBD quais tabelas existiro, quais atributos existiro,
quais atributos sero indexados, as restries de integridade, etc.

Manipulao de Dados (DML):


Refere-se s quatro operaes bsicas executadas sobre os dados
armazenados em qualquer SQBD: recuperao e atualizao dos
dados, insero de novos registros e excluso de registros
existentes.

A linguagem SQL incorpora a DDL e a DML.

SQL Definio de Dados


Criar Objetos
CREATE

exemplos

CREATE TABLE
CREATE INDEX

Modificar Objetos
ALTER

exemplos

ALTER TABLE
ALTER INDEX

Excluir Objetos
DROP

exemplos

DROP TABLE
DROP INDEX

09/08/2011

SQL - Manipulao de Dados


Manipular Dados
CONSULTA

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

Diagrama Relacional MS SQL Server

Modelo Relacional Notao Textual


Pais (sigla, nome)
Cidade (codigo, nome, UF, pais)
pais referencia Pais (sigla)

Cliente (codigo, nome, tipo, contrato, cargo, endereco, cidade, cep, fone, fax, obs)
cidade referencia Cidade (codigo)

Funcao (codigo, nome, gratif)


Setor (sigla, nome, ramal, chefe)
Funcionario (codigo, nome, sexo, rg, cpf, datanasc, naturalidade, dataadm, funcao, cidade, setor, ...)
naturalidade referencia Cidade (codigo)
funcao referencia Funcao (codigo)
cidade referencia Cidade (codigo)
setor referencia Setor (sigla)

Tipo (codigo, nome, descricao)


Pedido (codigo, cliente, vendedor, dataPedido, dataFatura, via, frete)
cliente referencia Cliente (codigo)
vendedor referencia Funcionario (codigo)

Produto (codigo, nome, descricao, apresent, venda, custo, quantest, estmin, tipo, situacao, status)
tipo referencia Tipo (codigo)

Itens (pedido, produto, preco, quant, desconto)


pedido referencia Pedido (codigo)

produto referencia Produto (codigo)

09/08/2011

SQL - Manipulao de Dados


CONSULTA (padro)
SELECT

Especifica as colunas e expresses exibidas no resultado da


consulta.

FROM

Especifica as tabelas que contm os dados exibidos nos


resultados da consulta.

INTO

Especifica uma nova tabela que conter o resultado da


consulta.

WHERE

Especifica as condies usadas para filtrar registros no


resultado da consulta.

GROUP BY Agrupa as linhas da consulta com base nos valores de uma


das colunas.
HAVING

Usada com a clusula GROUP BY para filtrar o resultado.

ORDER BY Estabelece a ordem na qual as linhas so retomadas.

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>

Exemplo: Exibir o nome do produto, a quantidade em estoque, o preo


do produto e o valor total (qtde x preo).
SELECT Codigo, Nome, Quantest, Venda, Total= quantest*venda
FROM Produto

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

Exemplo Selecionar nome do cliente e data de pedido que o cliente


realizou:
SELECT nome, dataPedido
FROM Pedidos, Cliente
WHERE Pedidos.cliente = Cliente.codigo

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

Definindo Apelidos: possvel definir apelidos para as


tabelas e us-los em vez dos nomes das tabelas.
SELECT C.nome, P.codigo, P.dataPedido
FROM Pedidos P, Cliente C
WHERE P.cliente = C.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

Linguagem SQL Reviso

Exerccios de Reviso

You might also like