0% acharam este documento útil (0 voto)
30 visualizações31 páginas

SQL Full

Este documento apresenta conceitos básicos sobre SQL, incluindo operações de junção, operadores aritméticos, de comparação e lógicos, cláusulas como GROUP BY e HAVING, consultas aninhadas, visões, segurança de dados usando os comandos GRANT e REVOKE.

Enviado por

orilia.macovele
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
30 visualizações31 páginas

SQL Full

Este documento apresenta conceitos básicos sobre SQL, incluindo operações de junção, operadores aritméticos, de comparação e lógicos, cláusulas como GROUP BY e HAVING, consultas aninhadas, visões, segurança de dados usando os comandos GRANT e REVOKE.

Enviado por

orilia.macovele
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 31

INTRODUÇÃO A BASES DE DADOS

Aula 7- SQL (Continuação)


O Grupo de
Disciplina
SQL

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;

•Existem quatro tipos de Join (Inner Join, Left Join,


Right Join e Outer Join);

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:

= : igual >= : maior igual


> : maior que <= : menor igual
< : menor que <> : diferente

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;

–COUNT DISTINCT: Conta a ocorrência dos valores


únicos e não nulos de uma coluna;

– COUNT(*): Conta todos os registros de uma


tabela;
– MAX: Retorna o maior não nulo de uma coluna;
Cláusulas GROUP BY e HAVING

•São empregadas nas consultas que utilizam funcões de


agregação;
•GROUP BY é utilizado para retornar colunas com valores
normais e valores agregados;
• Todas as colunas não agregadas devem ser incluídas no
GROUP BY;
•HAVING adiciona condições de busca no resultado da
cláusula GROUP BY;
•HAVING não afeta o cálculo da agregação, mas sim as
linhas retornadas pela consulta.

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

where nome like “S%”


Cláusula ORDER
BY
•Utilizada para ordenar os valores das colunas do
resultado da consulta;
•Na ausência do ORDER BY os valores do resultado são
ordenados de forma crescente, a partir do primeiro campo
projetado;

• 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;

• A consulta embutida é chamada subconsulta;

•Expressa uma condição que referencia uma tabela que


precisa ser computada;

• Exemplo: select cliente.nome, cliente.idade


from cliente, conta
where conta.codigo_cliente =
cliente.codigo
and
conta.saldo >= (select avg(conta.saldo) 1
4
Visões (Views)
Considerações sobre segurança podem exigir que
determinados dados não estejam disponíveis para
alguns usuários. Logo, não é desejável que o modelo
lógico possa ser acessado indiscriminadamente. Com
base nas questões de segurança, podemos criar uma
coleção de relações personalizadas que se ajustem
melhor às necessidades dos usuários e que levem em
conta as questões de segurança.
Tais relações são chamadas de visões.

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.

b)Podemos conceder privilégios para todos os usuários do


banco de dados colocando a palavra PUBLIC no lugar
reservado para a <lista_de_usuários>.

25
Exemplos:

26
Problemas

27
Cont.

•Podemos passar nossa concessão de privilégio a outros usuários


através da cláusula WITH GRANT OPTION.

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

Você também pode gostar