02 - Introdução e Revisão de SQL

download 02 - Introdução e Revisão de SQL

of 8

description

Introdução e Revisão de SQL

Transcript of 02 - Introdução e Revisão de SQL

  • 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