Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Produsul cartezian

sql



+ Font mai mare | - Font mai mic



Produsul cartezian

a) Sintaxa Oracle

Dupa cum am precizat, acest tip de legatura intre doua tabele, va lega fiecare rand din prima tabela cu fiecare rand din cea de a doua tabela. De exemplu comanda:

SELECT p.nume, p.prenume, f.nume



FROM persoane p, firme f

Va afisa urmatoarele informatii

Tabelul II.3.4. Produsul cartezian intre tabelele Persoane si Firme

Nume

Prenume

Nume

Ionescu

Gheorghe

SC Crisib SA

Vasilescu

Vasile

SC Crisib SA

Popescu

Ioan

SC Crisib SA

Georgescu

Maria

SC Crisib SA

Marinescu

Angela

SC Crisib SA

Antonescu

Elena

SC Crisib SA

Bischin

Paraschin

SC Crisib SA

Olaru

Angela

SC Crisib SA

Ionescu

Gheorghe

SC SoftCom

Vasilescu

Vasile

SC SoftCom

Popescu

Ioan

SC SoftCom

Georgescu

Maria

SC SoftCom

Marinescu

Angela

SC SoftCom

Antonescu

Elena

SC SoftCom

Bischin

Paraschin

SC SoftCom

Olaru

Angela

SC SoftCom

Ionescu

Gheorghe

SC TimTip

Vasilescu

Vasile

SC TimTip

Popescu

Ioan

SC TimTip

Georgescu

Maria

SC TimTip

Marinescu

Angela

SC TimTip

Antonescu

Elena

SC TimTip

Bischin

Paraschin

SC TimTip

Olaru

Angela

SC TimTip

Ionescu

Gheorghe

Brasoveanca

Vasilescu

Vasile

Brasoveanca

Popescu

Ioan

Brasoveanca

Georgescu

Maria

Brasoveanca

Marinescu

Angela

Brasoveanca

Antonescu

Elena

Brasoveanca

Bischin

Paraschin

Brasoveanca

Olaru

Angela

Brasoveanca


adica se obtin 8x4 = 32 inregistrari (tabela persoane contine 8 inregistrari, tabela firme 4 inregistrari)

De remarcat ca notatia p.nume p.prenume f.nume, precum si literele p si f care urmeaza dupa numele tabelelor din clauza FROM. Spunem ca am definit un alias al fiecarei tabele. Am fost nevoiti sa folosim acest alias, deoarece in ambele tabele exista o coloana cu numele nume si daca nu prefatam numele acestei coloane cu aliasul tabelei se va genera o ambiguitate pe care serverul bazei de date nu va sti sa o rezolve. Aliasul tabelei este obligatoriu sa-l folosim cand doua tabele contin coloane cu acelasi nume. In exemplul anterior coloana prenume nu este obligatoriu sa o prefatam cu aliasul coloanei, astfel comanda anterioara poate fi scrisa si astfel:

SELECT p.nume, prenume, f.nume

FROM persoane p, firme f

Asadar, produsul cartezian apare atunci cand nu este precizata nici o conditie privind modul de legare al celor doua tabele.


b) Sintaxa ANSI

Pentru a obtine produsul cartezian, in sintaxa ANSI vom folosi clauza CROSS JOIN in cadrul clauzei FROM ca in exemplul urmator.

SELECT p.nume, p.prenume, f.nume

FROM persoane p CROSS JOIN firme f

Rezultatul obtinut va coincide cu cel obtinut anterior.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2086
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved