Escolar Documentos
Profissional Documentos
Cultura Documentos
BANCO DE DADOS II
VOLUME 2
Governador | Eduardo Campos
UNIDADE 4 .................................................................................................. 5
1. CONSULTAS AVANADAS ................................................................... 5
1.1 INNER JOIN ......................................................................................... 6
1.2 Croos Join ........................................................................................... 11
1.3 OUTER JOIN ...................................................................................... 13
1.4 Sub-Queries (Sub-Consultas).......................................................... 18
1.5 Operaes sobre Conjuntos ............................................................ 20
UNIDADE 5 ................................................................................................ 23
2. DCL Data Control Language & DTL Linguagem de Transao de
Dados ........................................................................................................ 23
UNIDADE 6 ................................................................................................ 28
3. EXERCCIOS DE APRENDIZAGEM ..................................................... 28
REFERNCIA ............................................................................................ 46
1. CONSULTAS AVANADAS
C
onsultas Avanadas
Fonte: www.admin-blog.com
ANSI SQL
SELECT <nome_da_tabela.nome_da_coluna
[nome_da_tabela.nome_da_coluna... . . ]>
MySQL
SELECT <nome_da_tabela.nome_da_coluna
[nome_da_tabela.nome_da_coluna... . . ]>
SELECT Cliente.nome.cliente,
pedido.cod_cliente,
pedido.num_pedido
ON cliente.codigo_do_cliente = pedido.codigo_do_cliente
MySQL
SELECT Cliente.nome_cliente,
pedido.cod_cliente,
pedido.num_pedido
ANSI SQL
SELECT nome_cliente,
pedido.cod_cliente,
num_pedido
FROM cliente CROSS JOIN pedido
MySQL
Informtica | Banco de Dados II | Volume 2 11
SELECT nome_cliente,
pedido.cod_cliente,
num_pedido
FROM cliente, pedido
ANSI SQL
SELECT nome_cliente,
pedido.cod_cliente,
num_pedido
ON cliente.codigo_do_cliente = Pedido.codigo_do_cliente
ANSI SQL
SELECT Cliente.nome_cliente,
pedido.cod_cliente,
pedido.num_pedido
Figura Sub-Consultas
Fonte: Autor
SELECT descrio
FROM produto
WHERE cod_produto IN
(SELECT cod_produto
FROM item_pedido
WHERE quantidade = 10)
Figura Sub-Consulta
Fonte: Autor
CLUSULA UNION
/* Projetar o nome de todas as pessoas cadastradas no hospital */
(SELECT Nome FROM MEDICO)
UNION
(SELECT Nome FROM PACIENTE);
Caro aluno esta ltima classe dos comandos de SQL define ou controla
as transaes entre processos que ocorrem entre o SGBD e o sistema
operacional que est instalado o banco de dados. Bem como o controle e
validao das entradas dos demais comandos, nem todos os SGBDs
possuem este recurso, alm disto, importante salientar que os que contm
tais recursos, funcionam todos a sua maneira, ou seja, como
DBA(Administrador de Banco de Dados) devo conhecer o SGBD que estarei
atuando como a palma da minha mo. Vejamos os comandos mais
conhecidos trabalhados nesta classe bem especial, porm restrita alguns
SGBDS.
COMANDO COMMIT
Name
COMMIT -- efetiva a transao corrente
Synopsis
COMMIT [ WORK | TRANSACTION ]
Entradas
WORK
TRANSACTION
Sadas
COMMIT
Descrio
Notas
Utilizao
COMMIT WORK;
COMANDO ROLLBACK
Name
ROLLBACK -- aborta a transao corrente
Synopsis
ROLLBACK [ WORK | TRANSACTION ]
Entradas
Nenhuma.
Sadas
ABORT
Notas
Utilizao
ROLLBACK WORK;
3. EXERCCIOS DE APRENDIZAGEM
27. Listar o nome dos clientes e o nome das categorias que ele
comprou.
SELECT DISTINCT CLI.NomeDaEmpresa,
CAT.NomeDaCategoria
PED.NmeroDoPedido
AND PasDeDestino='Brasil');
43. Delete todos os detalhes e, posteriormente, todos os pedidos
feitos entre maio e junho de 1996.
DELETE *
FROM [Detalhes do Pedido]
WHERE NmeroDoPedido IN(SELECT NmeroDoPedido FROM
Pedidos
WHERE DataDoPedido >=#05/01/96#
AND DataDoPedido
<=#06/30/96#);