2. SQL - RevisãoSQL – Structured Query Language:
– Desenvolvida no início da década de 80
• Por que a SQL é tão importante?
– Declarada como padrão pelo American Nacional
Standarts Institute (ANSI) e pela International
Organization for Standardization (ISO).
– A maioria dos sistemas modernos de gerência de
bancos de dados se baseia no padrão da linguagem
SQL.
– Exemplo de SGBDs, lideres de mercado, que usam a
linguagem SQL: Oracle, MS SQL Server, PostgreSQL,
MySQL, Informix, etc.
2
#SQL
3. SQL - Revisão• Existem dois aspectos na gerência de dados:
– A definição dos dados (DDL - Data Definition
Language).
– A manipulação dos dados (DML – Data Manipulation
Language)
• Definição de Dados (DDL):
– Informa ao SGBD quais tabelas existirão, quais
atributos existirão, quais atributos serão
indexados, as restrições de integridade, etc.
• Manipulação de Dados (DML):
– Refere-se às quatro operações básicas executadas
sobre os dados armazenados em qualquer SQBD:
recuperação e atualização dos dados, inserção de
novos registros e exclusão de registros existentes.
• A linguagem SQL incorpora a DDL e a DML.
3
#SQL
4. DDL – Definição de Dados
CREATE TABLE
CREATE INDEXCREATE
ALTER TABLE
ALTER INDEXALTER
DROP TABLE
DROP INDEXDROP
exemplos
Criar Objetos
Modificar Objetos
Excluir Objetos
exemplos
exemplos
4
#SQL - DDL
5. DML – Manipulação de Dados
CONSULTA SELECT
INCLUSÃO INSERT
ALTERAÇÃO UPDATE
EXCLUSÃO DELETE
5
Manipular Dados
#SQL - DML
6. DML – Manipulação de Dados
CONSULTA (padrão)
SELECT Especifica as colunas e expressões exibidas no
resultado da consulta.
FROM Especifica as tabelas que contêm os dados exibidos
nos resultados da consulta.
INTO Especifica uma nova tabela que conterá o resultado
da consulta.
WHERE Especifica as condições 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 cláusula GROUP BY para filtrar o
resultado.
ORDER BY Estabelece a ordem na qual as linhas são retomadas.
6
#SQL - Consulta
7. Problema
João é o gerente de uma loja de atacado que realiza
aproximadamente 100 vendas diárias. 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 transação. É necessário 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, endereço, CPF e RG, e informam também dois números de
telefone para contato.
• Os vendedores da loja deverão ter nome, função e salário registrados,
juntamente com o setor no qual atuam.
• Informações como descrição, preço de custo, preço de venda, tipo e
código todos os produtos devem constar no sistema, bem como a
quantidade disponível em estoque.
7
#SQL - Consulta
9. Modelo RelacionalPais (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)
9
#SQL - Consulta
10. SQL - DesafioQuestão 1 – Crie uma consulta SQL que retorne o Código e
o Nome de todos os funcionários da base de dados.
Questão 2 – Crie uma consulta SQL que retorne o Código e
o Nome dos funcionários do sexo masculino.
Questão 3 – Crie uma consulta SQL que retorne o Código e
o Nome dos produtos cujo valor de venda é maior do que R$
500,00.
Questão 4 – Crie uma consulta SQL que retorne o Código do
Produto, o Nome do Produto e o Nome do Tipo do Produto,
para todos os produtos da base de dados.
Questão 5 – Crie uma consulta SQL que retorne o Nome do
Cliente e o Nome da Cidade onde o cliente mora, para
todos os clientes da base de dados.
10
#SQL - Consulta