o comando select (join)

Download O comando SELECT (JOIN)

If you can't read please download the document

Upload: graciano-torrao

Post on 12-Jun-2015

1.842 views

Category:

Documents


1 download

TRANSCRIPT

  • 1. JOINMySQL O comando SELECTEscola Secundria D. Afonso Sanches Vila do CondeGraciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao

2. ndice: O que o JOIN? Ligao entre tabelas: chaves estrangeiras e chaves primrias Sintaxe geral do comando SELECT recorrendo ao JOIN Produto cartesiano de tabelas INNER JOIN OUTER JOIN UNION SELF JOIN INTERSECT MINUSGraciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 3. O que o JOIN? O Join permite obter informao a partir de vrias tabelas, recorrendo apenas a um nico comando SELECT. Note que: o Modelo Relacional estabelece claramente as regras para a diviso da informao entre tabelas, de forma a evitar a redundncia na informao; para interligar as vrias tabelas so utilizadas as chaves primrias de cada uma delas; as chaves primrias de uma tabela so utilizadas nas outras tabelas, na qualidade de chaves estrangeira, permitindo desta forma a sua interligao. PessoaLocalidadeGraciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 4. Chave primria A chave primria (Primary Key), no contexto das bases de dados relacionais, o conjunto de um ou mais campos, cujos valores nunca se repetem e que podem ser usadas como um ndice para os demais campos da tabela. Quando um campo chave primria, no pode haver valores nulos nem repeties do seu contedo. Exemplo: Pessoa (bi, nome, ...)binome...123Ana...543Maria...342Carla...654Joana...binome...123Ana...543Maria...342Carla...123Joana...Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 5. Chave estrangeira Uma chave estrangeira (foreign key) um campo que aponta para a chave primria de outra tabela, o que torna possvel estabelecer o relacionamento entre ambas. O recurso s chaves estrangeiras possibilita garantir a integridade referencial dos dados "dispersos" pelas vrias tabelas de acordo com as regras definidas para o modelo relacional. Exemplo: Pessoa (bi, nome, cpostal)Localidade( cp, nomelocalidade)Pessoa binomecpostal123Ana1000543Maria4000342Carla4480654JoanaChave estrangeira4480Localidade cp 1000Lisboa4000 Chave primrianomelocalidade Porto4480Vila do CondeGraciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 6. Sintaxe geral do comando SELECT recorrendo ao JOIN A juno de tabelas faz-se indicando o nome das mesmas na clusula FROM: SELECT campo1, campo2, campo3, ..., campon, * FROM tabela1, tabela2, tabelakGraciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 7. Produto Cartesiano (Cross- JOIN) Na Matemtica, dados dois conjuntos X e Y, o produto cartesiano (ou produto directo) dos dois conjuntos (escrito como X Y) o conjunto de todos os pares ordenados cujo primeiro elemento pertence a X e o segundo, a Y. No nosso contexto, o produto cartesiano das duas tabelas Pessoa e Localidade : PessoaPessoa x Localidade#4Localidade#3 Equi-Join# 4 x 3 = 12Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 8. Natural Join Como vimos no diapositivo anterior, quando a ligao entre duas tabelas realizada atravs da igualdade entre duas colunas, este tipo particular de join designa-se equi-join. Um natural-join existe quando todas as colunas envolvidas na ligao entre as tabelas so apresentadas sem repetio de colunas.Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 9. Inner Join O Inner Join corresponde a uma outra designao para o join habitual em que se juntam duas ou mais tabelas, ligando-as atravs da chave primria de uma e da chave estrangeira de outra.Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 10. Inner Join Outra forma de obter exactamente o mesmo resultado consiste em recorrer explicitamente clusula Inner Join, como demonstrado a seguir:Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 11. Outer Join (left join e right join) O papel do Outer Join permitir que a totalidade das linhas de uma tabela seja obtida, ainda que no exista o correspondente valor na outra tabela a que est ligada pela juno.Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 12. Union Uma unio no propriamente uma ligao entre tabelas. A UNION permite juntar o contedo de dois ou mais comandos SELECT.Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 13. Um exemplo (pimba) de utilizao do inner join A base de dados tem o seguinte modelo.Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 14. Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 15. Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 16. Graciano Torro ( http://gracianotorrao.com )Programao e Sistemas de Informao 17. Dvidas?Escola Secundria D. Afonso Sanches Vila do CondeGraciano Torro17( [email protected] ) ( http://gracianotorrao.com )Programao e Sistemas de Informao