02 - introdução e revisão de sql
DESCRIPTION
Introdução e Revisão de SQLTRANSCRIPT
-
09/08/2011
1
Banco de Dados IIIntroduo SQL Reviso
Ludmila de Almeida [email protected]
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
2
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
CREATE TABLECREATE INDEXCREATE
ALTER TABLEALTER INDEXALTER
DROP TABLEDROP INDEXDROP
exemplos
Criar Objetos
Modificar Objetos
Excluir Objetos
exemplos
exemplos
-
09/08/2011
3
SQL - Manipulao de Dados
CONSULTA SELECT
INCLUSO INSERT
ALTERAO UPDATE
EXCLUSO DELETE
Manipular Dados
Problema
Joo o gerente de uma loja de atacado que realiza aproximadamente100 vendas dirias. Devido grande demanda e necessidade de agilizaro atendimento aos clientes, ele pretende implantar um sistema paracadastrar 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 ofrete cobrado.
Uma venda pode conter mais um produto, iguais ou diferentes. Portanto, aquantidade de cada produto comprado deve ser registrada no ato da venda.
Na hora da compra, os clientes preenchem uma ficha com dados pessoaiscomo nome, endereo, CPF e RG, e informam tambm dois nmeros detelefone 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 cdigotodos os produtos devem constar no sistema, bem como a quantidadedisponvel em estoque.
-
09/08/2011
4
Diagrama Relacional MS SQL Server
Modelo Relacional Notao TextualPais (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
5
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
6
SQL - Consulta
Para exibir colunas calculadas:
SELECT FROM 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*vendaFROM Produto
Resultado:Nome Quantest Venda Total
Toalhas Artex 50 250,00 12.500,00Iogurte Nestle 200 3,20 640,00
Abajur List 12 364,00 4.368,00TV Plasma 12 3,65 43,85
Liquidificador 150 92,00 13.800,00Computador Positivo 1 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 cdigoscorrespondentes: clusula WHERE
Exemplo Selecionar nome do cliente e data de pedido que o cliente realizou:
SELECT nome, dataPedidoFROM Pedidos, ClienteWHERE Pedidos.cliente = Cliente.codigo
-
09/08/2011
7
SQL - Consulta
Observao: para atributos que possuem o mesmonome em mais de uma tabela, obrigatrio incluir onome da tabela antes do nome do atributo.
SELECT nome, Pedidos.codigo, dataPedidoFROM Pedidos, ClienteWHERE 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.dataPedidoFROM Pedidos P, Cliente CWHERE 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 FuncaoFROM Setor S, Funcionario F, Funcao FUWHERE S.sigla = F.setor AND
F.funo = FU.codigo
Resultado da consulta:Setor Nome Salario Funcao
Compra e Venda Joo da Silva 300,00 VendedorMarketing Maria de Souza 300,00 Auxiliar de Caixa
Administrao Luiza Costa 950,00 GerenteSegurana Francisco da Silva 390,00 Segurana
Compra e Venda Carla Tavares 290,00 Auxiliar de Caixa
-
09/08/2011
8
SQL - Consulta
Exemplo2: Exibir o nome do funcionrio, cidade onde morae naturalidade.SELECT F.Nome, C.nome AS Cidade, N.nome AS NaturalidadeFROM Funcionario F, Cidade C, Cidade NWHERE F.cidade = C.codigo AND
F.naturalidade = N.codigo
Resultado da consulta:
Nome Cidade NaturalidadeJoo da Silva Joo Pessoa Joo Pessoa
Maria de Souza Joo Pessoa RecifeLuiza Costa Joo Pessoa Rio de Janeiro
Francisco da Silva Joo Pessoa HamburgoCarla Tavares Joo Pessoa Santiago
Linguagem SQL Reviso
Exerccios de Reviso