SQL – DML Consultas envolvendo relacionamentos entre tabelas

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Álgebra Relacional Marcelo Mendes Manaus
SQL Avançado Continuação
SQL Structured Query Language (continuação)
SQL Structured Query Language (continuação)
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
Prof. Bruno Rafael de Oliveira Rodrigues
Funções do SqlServer 2000 e Tipos de Junção
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
SQL Exercícios de Revisão
Algebra relacional nomeada e não-nomeada
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Exemplo Hospitalar Exemplo: BD para uma realidade hospitalar
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consulta a dados de uma tabela
Ordenação de Resultados
ÁLGEBRA RELACIONAL Cada operador da álgebra relacional toma uma ou duas relações como sua entrada e gera uma nova relação como saída. São oito os operadores.
Álgebra Relacional – Parte 3
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Elaboração de Consultas 3 de abril de Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos.
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
Monitoria GDI Aula Prática
SQL (Structured Query Language)
Geração de Planos de Execução Planos para Consultas Aninhadas
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Álvaro Vinícius de Souza Coêlho
Banco de Dados Aplicado ao Desenvolvimento de Software
Otimização de Consultas em SQL Planos de Execução
sintonia de banco de dados
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Desenvolvendo um script SQL
Álgebra Relacional (Exemplos)
Baseado no material do Professor Raul Paradeda
Comandos SQL.
REVISÃO Comandos SQL - DML SELECT * FROM ?.
VII- Álgebra Relacional
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Prof. Rebecca Arambasic AGBD LPBD Pesquisa avançada UNION / INTERSECT / EXCEPT Aula 1 / 2010.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
Visões Visão tabela derivada a partir das tabelas do BD tabela virtual
SQL (Structured Query Language)
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
Modelo de base de dados relacional
SQL – DML Consultas envolvendo mais de uma tabela
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
Subconsulta na Cláusula FROM
Subconsultas ou Consultas Aninhadas Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização –filtragens prévias.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Uma Proposta para Bancos de Dados Categoriais Rafael C. Pinto.
Associações = JOIN SERVE PARA CONVERTER DADOS ENCONTRADOS EM DUAS OU MAIS TABELAS. CLÁUSULA JOIN PERMITE QUE OS DADOS DE VÁRIAS TABELAS SEJAM COMBINADOS.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
UCSal – Bacharelado em Informática
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Transcrição da apresentação:

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))

(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

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

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’

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 (t1 t2))

(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

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

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’

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)

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

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

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