Professional Documents
Culture Documents
Linguagem de Consulta Estruturada em Inglês
SQL
É composta de:
Linguagem de definição de dados
Incorporação DML
Definição de visões
Autorização
Integridade
Controle de transações
SQL
A estrutura básica de uma expressão em
SQL é composta de três cláusulas:
Select
Corresponde à operação de PROJEÇÃO da
álgebra relacional
From
Corresponde à operação de produto cartesiano
da álgebra relacional
Where
Corresponde à seleção do predicado da álgebra
relacional
Cláusula select
Encontre os nomes de todas as
agencias da relação emprestimo
select agencia_nome
from emprestimo; (omissão de where ⇒ predicado é
TRUE)
from emprestimo
ou
select emprestimo_numero
from emprestimo
where total >= 500 and total <= 1000;
Cláusula from
Encontre os nomes, números de
emprestimo e total de todos os clientes
que tenham um emprestimo no banco
select cliente_nome,
devedor.emprestimo_numero, total
from devedor, emprestimo
where
devedor.emprestimo_numero=emprestimo.empr
estimo_numero;
Cláusula from
Encontre os nomes e os números de
emprestimo de todos os clientes que
tenham um emprestimo na agencia
“Independência”
select cliente_nome,
devedor.emprestimo_numero
from devedor, emprestimo
where devedor.emprestimo_numero =
emprestimo.emprestimo_numero and
agencia_nome = "Independência";
Operação Rename
Encontre os nomes e os números de
emprestimo de todos os clientes que
tenham um emprestimo na agencia
“Independência”, substituindo o
atributo emprestimo_numero por
emprestimo_id
select cliente_nome,
devedor.emprestimo_numero as emprestimo_id
from devedor, emprestimo
where devedor.emprestimo_numero =
emprestimo.emprestimo_numero and
agencia_nome
•AS não é opcional = "Independência";
•Não funciona substituir os campos emprestimo_numero, por emprestimo_id
Variáveis Tuplas
Para todos os clientes que possuem um
emprestimo, encontre seus nomes e
respectivos números de emprestimo e totais
select distinct cliente_nome,
d.emprestimo_numero, total
from devedor as d, emprestimo as e
where d.emprestimo_numero =
e.emprestimo_numero;
Encontre os nomes das agencias que tenham
fundos maiores que ao menos uma agencia
localizada em Taubaté
a palavra
select distinct a.agencia_nome chave AS é
opcional
from agencia a, agencia g
Operações com strings
Encontre os nomes de agencias que
comecem pela letra c
select agencia_nome
from agencia
where agencia_nome like "C%";
Obs: no access usa-se *.
from devedor;
from conta
from conta
Funções Agregadas -
Count
Encontre o número de depositantes de
cada agencia
select agencia_nome, count(distinct
cliente_nome)
from conta, depositante
where conta.conta_numero =
depositante.conta_numero
group by agencia_nome;
Não é
permitido o
uso do distinct
com o count
Funções Agregadas - Avg
Quando a condição não se aplica a
uma única tupla, mas a cada grupo
determinado pela cláusula group by
utiliza-se a cláusula Having
Encontre quais agencias possuem
média dos saldos aplicados em conta
maior que 600
select agencia_nome, avg(saldo)
from conta
group by agencia_nome
having avg(saldo)>600;
Funções Agregadas - Avg
Encontre a média dos saldos de todas
as contas
select avg(saldo)
from conta;
Funções Agregadas -
Count
Encontre o número de tuplas da
relação cliente
select count(*)
from cliente; Não é
permitido o
uso do distinct
com o
count(*)
Funções Agregadas - Avg
Encontre o saldo médio para cada
cliente que mora em Mairiporã e tenha
ao menos uma conta
select depositante.cliente_nome, avg(saldo)
from cliente, depositante, conta
cliente.cliente_nome=depositante.cliente_nome
And
depositante.conta_numero=conta.conta_numero
group by depositante.cliente_nome
from emprestimo
from emprestimo;
Subconsultas Aninhadas
– Membros de Conjuntos
Encontre todos os clientes que tenham
tanto conta quanto emprestimo no
banco
select distinct cliente_nome
from devedor
where cliente_nome in (select cliente_nome from
depositante);
from devedor
("Silvio","João");
– Comparação de
Conjuntos
Encontre os nomes das agencias que
tenham fundos maiores que ao menos
uma agencia localizada em Taubaté
select agencia_nome
from agencia
where fundos > some (select fundos from
agencia
where agencia_cidade =
"Taubaté" )
A SQL permite também comparações < some, <= some, >= some, = some
e <> some. Obs: = some é idêntico a in, e <> some não é idêntico a not in.
Remoção
Remova todos os registros de conta do
cliente Silvio
delete
from depositante
where cliente_nome="Silvio";
Remova todos os emprestimos com
total entre R$1300 e R$1500
delete
from emprestimo
where total between 1300 and 1500;
Inserção
Inserir na agencia Caçapava, a conta
de número A-307, com um saldo de
R$1200
insert into conta
values ("A-307", "Caçapava " ,1200);
Atualização
Aumentar todos os saldos em 5%
update conta
set saldo = saldo * 1.05;