SQL
-
Upload
claudinei-de-franca-motta -
Category
Documents
-
view
500 -
download
0
Transcript of SQL
SQL
Structured Query Language Linguagem de Consulta Estruturada Além de realizar consultas ao BD,
possui muitos outros recursos como: Definição da estrutura de dados Modificação de dados no BD Especificação de restrições de segurança
Linguagens de consulta
SQL Combina álgebra relacional e cálculo
relacional QBE (Query-by-Example)
Baseada no cálculo relacional de domínio QUEL
Baseada no cálculo relacional de tuplas
SQL
Versão original desenvolvida pela IBM, no início dos anos 70
Originalmente denominada Sequel Structured English Query Language Linguagem de Consulta Estruturada em Inglês
SQL
É composta de: Linguagem de definição de dados Linguagem de manipulaçã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
Encontre os nomes de todas as agencias da relação emprestimo select agencia_nome from emprestimo; (omissão de where predicado é TRUE)
Encontre os nomes de todas as agencias da relação emprestimo, eliminando duplicidades select distinct agencia_nome from emprestimo;
Cláusula select
Cláusula select Encontre os nomes de todas as agencias da
relação emprestimo, especificando explicitamente que as duplicidades não serão eliminadas select all agencia_nome from emprestimo;
Multiplicar os totais da relação emprestimo por 100 select agencia_nome, emprestimo_numero, total*100 from emprestimo;
Cláusula where
Encontre todos os números de emprestimos feitos na agencia “Monteiro Lobato” com totais acima de R$1200 select emprestimo_numero from emprestimo where agencia_nome= "Monteiro Lobato" and
total>1200;
Cláusula where Encontrar os números de emprestimo cujos
totais estejam entre R$500 e R$1000 inclusive select emprestimo_numero from emprestimo where total between 500 and 1000;
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.emprestimo_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 = "Independência";
•AS não é opcional
•Não funciona substituir os campos emprestimo_numero, por emprestimo_id
•AS não é opcional
•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 de Taubaté select distinct a.agencia_nome from agencia a, agencia g where a.fundos>g.fundos and
g.agencia_cidade="Taubaté";a palavra
chave AS é opcional
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 *.
Encontre os nomes de agencias que possuam a substring “ça” em seus nomes select agencia_nome from agencia where agencia_nome like "%ça%";
Operações com strings
Encontre os nomes de agencias que não comecem pela letra c select agencia_nome from agencia where agencia_nome not like "C%";
Operações com strings
Encontre os nomes de agencias que possuam pelo menos 4 caracteres na string do seu nome select agencia_nome from agencia where agencia_nome like "____%";
Ordenação
Classificar em ordem alfabética os nomes de todos os clientes que tenham um emprestimo na agencia “Monteiro Lobato” select cliente_nome from devedor, emprestimo where
devedor.emprestimo_numero=emprestimo.emprestimo_numero and agencia_nome= "Monteiro Lobato"
order by cliente_nome;
Ordenação
Listar a relação emprestimo inteira em ordem decrescente de Total. Se emprestimos possuírem totais iguais, organizar os números de emprestimo em ordem ascendente select * from emprestimo order by total desc, emprestimo_numero asc;
Operação de União Encontre os nomes de todos os clientes
que tenham um emprestimo, uma conta ou ambos no banco select cliente_nome from depositante union select cliente_nome from devedor;
Exercício: obter o resultado da consulta anterior com todas as repetições
Como na Álgebra relacional, as
relações participantes da
operação de união precisam ser compatíveis
Operação Interseção Encontre os nomes de todos os clientes que
tenham emprestimo e conta no banco
select distinct depositante.cliente_nome from depositante, devedor where depositante.cliente_nome=devedor.cliente_nome;
Exercício: obter o resultado da consulta anterior com todas as repetições
Como na Álgebra relacional, as
relações participantes da
operação de interseção precisam
ser compatíveis
Operação Diferença Encontre os nomes de todos os clientes que
tenham uma conta e nenhum emprestimo no banco
select distinct cliente_nome from depositante where cliente_nome not in (select cliente_nome from
devedor);
Exercício: obter o resultado da consulta anterior com todas as repetições
Como na Álgebra relacional, as
relações participantes da
operação Diferença precisam ser compatíveis