Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouHeitor Medeiros Alterado mais de 10 anos atrás
1
SQL – DML Consultas envolvendo relacionamentos entre tabelas
select lista_atributos from lista_tabelas [where condição] Mapeamento para a álgebra relacional select a1, ..., an from t1, ..., tm where c a1, ..., an ( c (t1 X ... X tm))
2
(Pacientes X Consultas)
Exemplos Álgebra SQL (Pacientes X Consultas) Select * From Pacientes, Consultas RG, nome, data ( hora > 12:00 (Pacientes X Consultas) Pacientes.codp = Consultas.codp ) Select RG, nome, data From Pacientes,Consultas Where hora > ‘12:00’ and Pacientes.codp = Consultas.codp f1.nome ( f2.nome = ‘Marcelo’ f1.salário > f2.salário ( ( f1 (Funcionários)) X ( f2 (Funcionários)) ) Select f1.nome From Funcionários f1, Funcionários f2 Where f2.nome = ‘Marcelo’ and f1.salário > f2.salário
3
Junção Sintaxe Mapeamento para a álgebra relacional
select lista_atributos from tabela1 [inner] join tabela2 on condição_junção [join tabela3 on ...] [where condição] Mapeamento para a álgebra relacional select a1, ..., an from t1 join t2 on t1.x > t2.x where c a1, ..., an ( c (t1 X t2)) = t1.x > t2.x
4
Exemplos Álgebra SQL = Médicos.codm = Consultas.codm
(Pacientes X Consultas) = Pacientes.codp = Consultas.codp Select * From Pacientes join Consultas on Pacientes.codp = Consultas.codp nome ( data = ’05/13/03’ (Médicos X Consultas) ) = Médicos.codm = Consultas.codm Select nome From Médicos join Consultas on Médicos.codm = Consultas.codm Where data = ‘05/13/03’
5
Junção Natural Sintaxe Mapeamento para a álgebra relacional
select lista_atributos from tabela1 natural join tabela2 [natural join tabela3 ...] [where condição] Mapeamento para a álgebra relacional select a1, ..., an from t1 natural join t2 where c a1, ..., an ( c (t t2))
6
(Pacientes Consultas)
Exemplos Álgebra SQL (Pacientes Consultas) Select * From Pacientes natural join Consultas nome ( data = ’05/13/03’ (Médicos Consultas) ) Select nome From Médicos natural join Consultas Where data = ‘05/13/03’ Observação SQL-Server não implementa o natural join
7
Junções Externas (Não Naturais)
Sintaxe select lista_atributos from tabela1 left|right|full [outer] join tabela2 on condição_junção [join tabela3 on ...] [where condição] Mapeamento para a álgebra relacional select a1, ..., an from t1 left join t2 on t1.x > t2.x where c a1, ..., an ( c (t1 X t2)) = t1.x > t2.x
8
Exemplos Álgebra SQL = Médicos.codm = Consultas.codm
(Pacientes X Consultas) = Pacientes.codp = Consultas.codp Select * From Pacientes left join Consultas on Pacientes.codp = Consultas.codp nome ( data = ’05/13/03’ (Consultas X Médicos)) = Médicos.codm = Consultas.codm Select nome From Médicos right join Consultas on Médicos.codm = Consultas.codm Where data = ‘05/13/03’
9
Subconsultas ou Consultas Aninhadas
Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização filtragens prévias de dados na subconsulta apenas tuplas/atributos de interesse são combinados com dados da(s) tabela(s) da consulta externa Cláusulas de subconsulta nome_atributo [NOT] IN (consulta_SQL) nome_atributo [< | <= | > | >= | < > | !=] ANY (consulta_SQL) nome_atributo [< | <= | > | >= | < > | !=] ALL (consulta_SQL)
10
Subconsultas com IN Testam a relação de pertinência ou não-pertinência elemento-conjunto select lista_atributos from tabela1 [...] where atributo_ou_expressão [NOT] IN (consulta_SQL) Mapeamento para a álgebra relacional select a1, ..., an from t1 where c IN (select x from t2 where d > 5) a1, ..., an (t1 X (x ( d > 5 (t2)))) = t1.c = t2.x
11
Exemplos Álgebra SQL nome ( (Médicos X
= Médicos.codm = Consultas.codm (codm ( data = ’05/13/03’ (Consultas))) ) ) Select nome From Médicos Where codm in (select codm from Consultas where data = ‘05/13/03’) (RG (Funcionários)) (RG (Pacientes)) Select RG From Funcionários Where RG not in (select RG from Pacientes) (RG (Médicos)) Where RG in
12
Diferença/Intersecção de Tabelas
Exige tabelas compatíveis Exemplos Observação SQL Server não implementa estas operações Álgebra SQL relação1 relação2 consultaSQL1 except consultaSQL2 relação1 relação2 consultaSQL1 intersect consultaSQL2 (RG (Funcionários)) (RG (Pacientes)) Select RG From Funcionários except Select RG From Pacientes (RG (Médicos)) Select RG From Médicos intersect
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.