A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SQL – DML Consultas envolvendo relacionamentos entre tabelas select lista_atributos from lista_tabelas [where condição] Mapeamento para a álgebra relacional.

Apresentações semelhantes


Apresentação em tema: "SQL – DML Consultas envolvendo relacionamentos entre tabelas select lista_atributos from lista_tabelas [where condição] Mapeamento para a álgebra relacional."— Transcrição da apresentação:

1 SQL – DML Consultas envolvendo relacionamentos entre tabelas select lista_atributos from lista_tabelas [where condição] Mapeamento para a álgebra relacional select a 1,..., a n from t 1,..., t m where c a1,..., an ( c (t 1 X... X t m ))

2 Exemplos ÁlgebraSQL (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 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 a 1,..., a n from t 1 join t 2 on t 1.x > t 2.x where c a1,..., an ( c (t 1 X t 2 )) = t 1.x > t 2.x

4 Exemplos ÁlgebraSQL (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 select lista_atributos from tabela1 natural join tabela2 [natural join tabela3...] [where condição] Mapeamento para a álgebra relacional select a 1,..., a n from t 1 natural join t 2 where c a1,..., an ( c (t 1 t 2 ))

6 Exemplos ÁlgebraSQL (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 a 1,..., a n from t 1 left join t 2 on t 1.x > t 2.x where c a1,..., an ( c (t 1 X t 2 )) = t 1.x > t 2.x

8 Exemplos ÁlgebraSQL (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 a 1,..., a n from t 1 where c IN (select x from t 2 where d > 5) a1,..., an (t 1 X ( x ( d > 5 (t 2 )))) = t 1.c = t 2.x

11 Exemplos ÁlgebraSQL 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)) ( RG (Pacientes)) Select RG From Médicos Where RG in (select RG from Pacientes)

12 Diferença/Intersecção de Tabelas Exige tabelas compatíveis Exemplos Observação –SQL Server não implementa estas operações ÁlgebraSQL 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)) ( RG (Pacientes)) Select RG From Médicos intersect Select RG From Pacientes


Carregar ppt "SQL – DML Consultas envolvendo relacionamentos entre tabelas select lista_atributos from lista_tabelas [where condição] Mapeamento para a álgebra relacional."

Apresentações semelhantes


Anúncios Google