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

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

1- Álgebra Relacional e SQL- 1 Pedro Sousa, IST/INESC A sequência SELECT-FROM SELECT a1,a2,...,an FROM Tx,Ty,...Tz Do produto das tabelas Tx,Ty,...Tz Escolhe.

Apresentações semelhantes


Apresentação em tema: "1- Álgebra Relacional e SQL- 1 Pedro Sousa, IST/INESC A sequência SELECT-FROM SELECT a1,a2,...,an FROM Tx,Ty,...Tz Do produto das tabelas Tx,Ty,...Tz Escolhe."— Transcrição da apresentação:

1 1- Álgebra Relacional e SQL- 1 Pedro Sousa, IST/INESC A sequência SELECT-FROM SELECT a1,a2,...,an FROM Tx,Ty,...Tz Do produto das tabelas Tx,Ty,...Tz Escolhe os atributos a1,a2,...,an

2 1- Álgebra Relacional e SQL- 2 Pedro Sousa, IST/INESC A sequência “ SELECT-FROM-WHERE ” SELECT a1,a2,...,an FROM Tx,Ty,...Tz WHERE condições1 Do produto das tabelas Tx,Ty,...Tz Selecciona os registos cujo atributos satisfazem as condições1 Escolhe os atributos a1,a2,...,an

3 1- Álgebra Relacional e SQL- 3 Pedro Sousa, IST/INESC A sequência “ SELECT-FROM-WHERE-GROUPBY-HAVING- ORDERBY ” SELECT a1,a2,...,an FROM Tx,Ty,...Tz WHERE condições1 GROUPBY ai,…,aj HAVING condições2 ORDERBY ap,…,aq Do produto das tabelas Tx,Ty,...Tz Agrupa o resultado pelos atributos ai,…,aj Selecciona os registos cujos atributos satisfazem as condições2 Escolhe os atributos a1,a2,...,an Ordena os resgistos resultantes Pelo valor dos atributos ap,…,aq Selecciona os registos cujo atributos satisfazem as condições1

4 1- Álgebra Relacional e SQL- 4 Pedro Sousa, IST/INESC Produto de duas Tabelas a1 a2 a3 g a x h b y i a x j e x k b x FROM TA, TB b1 b2 1 b 3 e TA TB a1 a2 a3 b1 b2 g a x 1 b h b y 1 b i a x 1 b j e x 1 b k b x 1 b g a x 3 e h b y 3 e i a x 3 e j e x 3 e k b x 3 e

5 1- Álgebra Relacional e SQL- 5 Pedro Sousa, IST/INESC Exemplo Pessoas que vivem em Lisboa Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem SELECT Pessoa FROM Vivem WHERE Cidade = “Lisboa” Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Pessoa Cidade António Lisboa Zé Lisboa Pessoa Cidade António Lisboa Zé Lisboa 1 2 3 3 Pessoa António Zé 1 2 2 3

6 1- Álgebra Relacional e SQL- 6 Pedro Sousa, IST/INESC Exemplo Pessoas que vivem em Lisboa e têm um BMW Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem SELECT Vivem.Pessoa FROM Vivem, Carro WHERE Cidade = “Lisboa” AND Carro = “BMW” AND Vivem.Pessoa = Carro.Pessoa Pessoa Carro António BMW João FIAT Pedro OPEL Zé BMW Carro Pessoa Cidade Pessoa Carro António Lisboa António BMW João Porto António BMW Pedro Coimbra António BMW Zé Lisboa António BMW Rui Coimbra António BMW António Lisboa João FIAT João Porto João FIAT Pedro Coimbra João FIAT Zé Lisboa João FIAT Rui Coimbra João FIAT António Lisboa Pedro OPEL João Porto Pedro OPEL Pedro Coimbra Pedro OPEL Zé Lisboa Pedro OPEL Rui Coimbra Pedro OPEL António Lisboa Zé BMW João Porto Zé BMW Pedro Coimbra Zé BMW Zé Lisboa Zé BMW Rui Coimbra Zé BMW Vivem * Carro

7 1- Álgebra Relacional e SQL- 7 Pedro Sousa, IST/INESC Exemplo Pessoas que vivem em Lisboa e têm um BMW Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem SELECT Vivem.Pessoa FROM Vivem, Carro WHERE Cidade = “Lisboa” AND Carro = “BMW” AND Vivem.Pessoa = Carro.Pessoa 1 Pessoa Carro António BMW João FIAT Pedro OPEL Zé BMW Carro Pessoa Cidade Pessoa Carro António Lisboa António BMW João Porto António BMW Pedro Coimbra António BMW Zé Lisboa António BMW Rui Coimbra António BMW António Lisboa João FIAT João Porto João FIAT Pedro Coimbra João FIAT Zé Lisboa João FIAT Rui Coimbra João FIAT António Lisboa Pedro OPEL João Porto Pedro OPEL Pedro Coimbra Pedro OPEL Zé Lisboa Pedro OPEL Rui Coimbra Pedro OPEL António Lisboa Zé BMW João Porto Zé BMW Pedro Coimbra Zé BMW Zé Lisboa Zé BMW Rui Coimbra Zé BMW Vivem * Carro

8 1- Álgebra Relacional e SQL- 8 Pedro Sousa, IST/INESC Exemplo Pessoas que vivem em Lisboa e têm um BMW Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem Pessoa Carro António BMW João FIAT Pedro OPEL Zé BMW Carro Pessoa Cidade Pessoa Carro António Lisboa António BMW Zé Lisboa António BMW António Lisboa João FIAT Zé Lisboa João FIAT António Lisboa Pedro OPEL Zé Lisboa Pedro OPEL António Lisboa Zé BMW Zé Lisboa Zé BMW (Vivem * Carro) Where Cidade = Lisboa SELECT Vivem. Pessoa FROM Vivem, Carro WHERE Cidade = “Lisboa” AND Carro = “BMW” AND Vivem.Pessoa = Carro.Pessoa

9 1- Álgebra Relacional e SQL- 9 Pedro Sousa, IST/INESC Exemplo Pessoas que vivem em Lisboa e têm um BMW Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem Pessoa Carro António BMW João FIAT Pedro OPEL Zé BMW Carro Pessoa Cidade Pessoa Carro António Lisboa António BMW Zé Lisboa António BMW António Lisboa João FIAT Zé Lisboa João FIAT António Lisboa Pedro OPEL Zé Lisboa Pedro OPEL António Lisboa Zé BMW Zé Lisboa Zé BMW (Vivem * Carro) Where Cidade = Lisboa SELECT Vivem. Pessoa FROM Vivem, Carro WHERE Cidade = “Lisboa” AND Carro “BMW” AND Vivem.Pessoa = Carro.Pessoa

10 1- Álgebra Relacional e SQL- 10 Pedro Sousa, IST/INESC Exemplo Pessoas que vivem em Lisboa e têm um BMW Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem Pessoa Carro António BMW João FIAT Pedro OPEL Zé BMW Carro Pessoa Cidade Pessoa Carro António Lisboa António BMW Zé Lisboa Zé BMW (Vivem * Carro) Where Cidade = Lisboa AND Vivem.Pessoa = Carro.Pessoa SELECT Vivem. Pessoa FROM Vivem, Carro WHERE Cidade = “Lisboa” AND Carro = “BMW” AND Vivem.Pessoa = Carro.Pessoa

11 1- Álgebra Relacional e SQL- 11 Pedro Sousa, IST/INESC Exemplo Pessoas que vivem em Lisboa e têm um BMW Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem Pessoa Carro António BMW João FIAT Pedro OPEL Zé BMW Carro Pessoa Cidade Pessoa Carro António Lisboa António BMW Zé Lisboa Zé BMW (Vivem * Carro) Where Cidade = Lisboa AND Vivem.Pessoa = Carro.Pessoa SELECT Vivem.Pessoa FROM Vivem, Carro WHERE Cidade = “Lisboa” AND Carro = “Lisboa” AND Vivem.Pessoa = Carro.Pessoa

12 1- Álgebra Relacional e SQL- 12 Pedro Sousa, IST/INESC Exemplo 1 Pessoas que vivem na mesma Cidade Pessoa Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Vivem SELECT tx.Pessoa, ty,Pessoa FROM Vivem AS Tx, Vivem As Ty WHERE Tx.Cidade = Ty.Cidade Tx.Pessoa Tx.Cidade Ty.Pessoa Ty.Cidade António Lisboa António Lisboa João Porto António Lisboa Pedro Coimbra António Lisboa Zé Lisboa António Lisboa Rui Coimbra João Porto António Lisboa João Porto João Porto Pedro Coimbra João Porto Zé Lisboa João Porto Rui Coimbra ………… ………... Rui Coimbra António Lisboa Rui Coimbra João Porto Rui Coimbra Pedro Coimbra Rui Coimbra Zé Lisboa Rui Coimbra T1 = (Vivem AS Tx) TIMES (Vivem As Ty)

13 1- Álgebra Relacional e SQL- 13 Pedro Sousa, IST/INESC Exemplo 1 Pessoas que vivem na mesma Cidade SELECT tx.Pessoa, ty,Pessoa FROM Vivem AS Tx, Vivem As Ty WHERE Tx.Cidade = Ty.Cidade T2 = T1 WHERE Tx.Cidade = Ty.Cidade Tx.Pessoa Tx.Cidade Ty.Pessoa Ty.Cidade António Lisboa António Lisboa Zé Lisboa Pedro Coimbra Pedro Coimbra Rui Coimbra Zé Lisboa António Lisboa Zé Lisboa Rui Coimbra Pedro Coimbra Rui Coimbra Tx.Pessoa Tx.Cidade Ty.Pessoa Ty.Cidade António Lisboa António Lisboa João Porto António Lisboa Pedro Coimbra António Lisboa Zé Lisboa António Lisboa Rui Coimbra João Porto António Lisboa João Porto João Porto Pedro Coimbra João Porto Zé Lisboa João Porto Rui Coimbra ………… ………... Rui Coimbra António Lisboa Rui Coimbra João Porto Rui Coimbra Pedro Coimbra Rui Coimbra Zé Lisboa Rui Coimbra

14 1- Álgebra Relacional e SQL- 14 Pedro Sousa, IST/INESC Exemplo 1 Pessoas que vivem na mesma Cidade SELECT tx.Pessoa, ty,Pessoa FROM Vivem AS Tx, Vivem As Ty WHERE Tx.Cidade = Ty.Cidade T5 = T4 = T3 = T2 [tx.Pessoa, ty,Pessoa] Tx.Pessoa Ty.Pessoa António António Zé Pedro Pedro Rui Zé António Zé Rui Pedro Rui Tx.Pessoa Tx.Cidade Ty.Pessoa Ty.Cidade António Lisboa António Lisboa Zé Lisboa Pedro Coimbra Pedro Coimbra Rui Coimbra Zé Lisboa António Lisboa Zé Lisboa Rui Coimbra Pedro Coimbra Rui Coimbra

15 1- Álgebra Relacional e SQL- 15 Pedro Sousa, IST/INESC Agrupar Por a1 a2 a3 1 a x 1 b y 1 b z 2 a x 3 e x 4 b w 4 b x a1 a2 a3 a x 1 by b z 2 a x 3 e x 4 b w b x GROUPBY a1GROUPBY a1,a2 a1 a2 a3 1 a x 1 by 1 z 2 a x 3 e x 4 b w 4 b x

16 1- Álgebra Relacional e SQL- 16 Pedro Sousa, IST/INESC Exemplo 2 Nº de pessoas em cada Cidade, que não seja Porto e que tenham mais do que um cliente, ordenado por ordem decrescente Cliente Cidade António Lisboa João Porto Pedro Coimbra Zé Lisboa Rui Coimbra Adriano Lisboa Vivem SELECT Cidade, count (*) FROM Vivem WHERE Cidade <> ‘Porto’ GROUPBY Cidade HAVING count(*) > 2 ORDERBY 2 T1 = Vivem T2 = Vivem WHERE Cidade <> ‘Porto’ Cliente Cidade António Lisboa Pedro Coimbra Zé Lisboa Rui Coimbra Adriano Lisboa

17 1- Álgebra Relacional e SQL- 17 Pedro Sousa, IST/INESC Exemplo 2 Nº de pessoas em cada Cidade, que não seja FARO e que tenham mais do que um cliente, ordenado por ordem decrescente T2 SELECT Cidade, count (*) FROM Vivem WHERE Cidade <> ‘Faro’ GROUPBY Cidade HAVING count(*) > 2 ORDERBY 2 T3 = T2 GROUPBY Cidade Cliente Cidade António Lisboa Pedro Coimbra Zé Lisboa Rui Coimbra Adriano Lisboa Cliente Cidade António Lisboa Zé Adriano Pedro Coimbra Rui T4 = T3 WHERE count(*) > 2 Cliente Cidade António Lisboa Zé Adriano

18 1- Álgebra Relacional e SQL- 18 Pedro Sousa, IST/INESC Exemplo 2 Nº de pessoas em cada Cidade, que não seja FARO e que tenham mais do que um cliente, ordenado por ordem decrescente SELECT Cidade, count (*) FROM Vivem WHERE Cidade <> ‘Faro’ GROUPBY Cidade HAVING count(*) > 2 ORDERBY 2 T5 = T4 [Cidade], EXTEND count(*) Cidade, count(*) Lisboa 3 Cliente Cidade António Lisboa Zé Adriano T4 T6 = T5 ORDERED BY count(*) Cidade, count(*) Lisboa 3


Carregar ppt "1- Álgebra Relacional e SQL- 1 Pedro Sousa, IST/INESC A sequência SELECT-FROM SELECT a1,a2,...,an FROM Tx,Ty,...Tz Do produto das tabelas Tx,Ty,...Tz Escolhe."

Apresentações semelhantes


Anúncios Google