SQL Full
SQL Full
2
Junção (Join)
Retorna os dados da consulta de uma ou mais
tabelas em um único conjunto;
•Esta operação também é possível através da
cláusula WHERE;
3
Junção (Exemplos)
Inner Join:
select cliente.nome, cliente.idade, conta.saldo from conta,
cliente
where conta.codigo_cliente = cliente.codigo
Left / Right Join:
SELECT Pessoa.Nome,, Pessoa.Idade, Orde.OrdeNo
FROM Pessoa
LEFT JOIN Ordem
ON Pessoa.P_Id=Order.P_Id
ORDER BY Pessoa.Nome
Left / Right Join:
select cliente.nome, cliente.idade, conta.saldo
from conta, cliente
where conta.codigo_cliente *= cliente.codigo
where conta.codigo_cliente =* cliente.codigo
4
Outer Join: (não é suportado pelos SGBDs)
select cliente.nome, cliente.idade, conta.saldo
from conta, cliente
where conta.codigo_cliente *=*
cliente.codigo
5
Operadores Aritméticos
•Executam operações matemáticas em duas expressões
(ou campos) de tipo numérico;
• Operações suportadas:
+: Adição * : Multiplicação
- : Subtracção / : Divisão
% : Modulo
Exemplo:
update conta
set saldo = saldo * 1,05
where nome_cliente = 'Smith’
6
Operadores de Comparação
• Testa se duas expressões (ou campos) são iguais ou não;
• Operações suportadas:
Exemplo:
select nome_cliente, saldo
from conta
where saldo >= 1000
7
Operadores de Agregação
•São utilizadas para prover vários tipos de
informações sumarizadas;
• Operações Suportadas:
– AVG: Retorna a média dos valores não
nulos da coluna;
–COUNT: Conta a ocorrência dos valores não nulos de
uma coluna;
9
Agregação (Exemplos)
select nome_agencia,
count (nome_cliente),
sum (saldo)
from conta
where banco = “Banco do
Brasil”
group by
nome_agencia Having
count (nome_cliente) > 10
10
Operadores Lógicos
•São comumente usados na cláusula WHERE para testar
alguma condição;
• Operadores lógicos retornam um valor booleano TRUE
ou FALSE;
• Operações Suportadas:
ALL IN
AND LIKE
ANY NOT
IS NULL SOME
BETWEEN OR
EXISTS
11
Operadores Lógicos (Exemplos)
• AND:
select cliente.nome, cliente.idade, conta.saldo
from conta, cliente
where conta.codigo_cliente = cliente.codigo and
saldo > 1000
• OR:
select codigo_cliente, saldo from conta where
saldo < 100
or saldo > 1000
• LIKE:
select nome, idade
from cliente 12
• Exemplo:
select cliente.nome, cliente.idade, conta.saldo
from conta, cliente
where conta.codigo_cliente = cliente.codigo
order by
cliente.nome asc,
saldo desc,
idade desc
13
Consultas Aninhadas
•Uma consulta aninhada é uma consulta que tem outra
consulta embutida dentro dela;
15
Visões (Views)
Uma visão, na terminologia SQL, é uma
tabela que é derivada de outras tabelas.
Estas outras tabelas podem ser tabelas-base
(criadas através do comando CREATE
TABLE) ou outras visões previamente d e
finidas. Uma visão não está,
necessariamente, fisicamente armazenada no
banco de dados; ela pode existir apenas
virtualmente, em contraste com as tabelas
base, cujas as tuplas se encontram
fisicamente armazenadas no banco de dados.
16
Definição de
Visões
Em SQL, uma visão é definida através
do comando create view, cuja a
forma geral é:
17
Problema 1:
Criar uma visão que contenha apenas os
produtos vendidos em quilograma.
18
Problema 2:
Criar uma visão contendo o código do
vendedor, o seu nome e o salário fixo
anual.
19
Utilizacao de
Visões
Com base na visão salario_anual,
mostrar os vendedores que têm salário
fixo anual superior a R$ 20.000,00.
20
Eliminar as
Visões
Podemos eliminar uma visão através do
comando drop view, cuja a forma geral é:
21
Segurança
A informação é vital para o sucesso de um negócio, mas
quando ela é tratada de forma incorreta ou quando cai em
mão erradas, pode tornar-se um sério obstáculo para se
atingir o sucesso.
Visando garantir a segurança dos dados, os SGBD’s
disponíveis no mercado fornecem um série de facilidades
para salvaguardar as informações por eles mantidas. Tais
facilidades são implementadas concedendo-se e retirando-se
privilégios dos usuários sobre os dados mantidos por um
SGBD.
22
O Comando GRANT
• Quando uma tabela ou uma visão é criada, o nome do
usuário que a criou é anexado implicitamente ao nome da
tabela ou da visão.
• Exemplo:
• Se a tabela produto foi criada pelo usuário pedro; então,
internamente, ela será conhecida como pedro.produto.
• O criador de uma tabela ou de uma visão tem todos
os privilégio sobre o objeto criado, podendo inclusive
conceder tais privilégios para outros usuários.
• Em SQL, os privilégios são concedidos através do
comando 23
24
Observações:
a) Os usuário que irão receber os privilégios têm que estar
previamente cadastrados no banco de dados.
25
Exemplos:
26
Problemas
27
Cont.
28
O Comando
REVOKE
• Da mesma forma que podemos conceder privilégios de acesso a
outros usuários, podemos também retirá-los através do comando
REVOKE, cuja a forma geral é:
29
Exemplo:
Retirar o privilégio de seleção sobre a
tabela pedido do usuário Ana.
30
31