Scrigroup - Documente si articole

     

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


Operatorii UNION, INTERSECT, MINUS

sql



+ Font mai mare | - Font mai mic



Operatorii UNION INTERSECT MINUS



Un caz mai special de interogare a mai multor tabele este acela in care combinam rezultatele a doua sau mai multe interogari independente una de cealalta.

Operatorii folositi in acest scop sunt:

UNION ALL - returneaza toate liniile returnate de de interogarile pe care le leaga, inclusiv duplicatele (daca cele doua subinterogari returneaza amanduua o aceeasi linie, acest operator le va include pe ambele in rezultat)

UNION - asemanator cu operatorul anterior insa sunt eliminate duplicatele

INTERSECT - afiseaza liniile returnate de ambele interogari

MINUS - returneaza liniile care sunt returnate de prima interogare dar nu sunt returnate si de a doua interogare.

Atentie! Numarul de coloane si tipul coloanelor returnate de cele doua nterogari trebuie sa fie acelati, chiar daca au alt nume.

Sintaxa folosirii acestor operatori este

interogare operator interogare

Vom exemplifica utilizarea acestor operatori pe doua tabele formale

Tabelul II.3.10. Tabela A

ColA

ColB

A

A

B

C

C

D

Tabelul II.3.11. Tabela B

ColC

ColD

A

B

B

C

C

C

D

Tabelul II.3.12. Tabela C

ColE

ColF

A

B

C

D

E

Interogarea

SELECT ColA, ColB FROM A

UNION ALL

SELECT ColC, ColD FROM B

va afisa tabela II.3.13. Comanda urmatoare va elimina duplicatele, rezultatul fiind cel din tabela II.3.14.

SELECT ColA, ColB FROM A

UNION

SELECT ColC, ColD FROM B

Tabelul II.3.13. Utilizarea operatorului UNION ALL

COLA

COLB

A

A

B

C

C

D

A

B

B

C

C

C

D

Tabelul II.3.14. Utilizarea operatorului UNION

COLA

COLB

A

A

A

B

B

C

C

C

C

D

D

Similar comenzile urmatoare vor afisa tabelul II.3.14 si respectiv II.3.15:

SELECT ColA, ColB FROM A

INTERSECT

SELECT ColC, ColD FROM B

si

SELECT ColA, ColB FROM A

MINUS

SELECT ColC, ColD FROM B

Tabelul II.3.14. Utilizarea operatorului INTERSECT

COLA

COLB

B

C

Tabelul II.3.15. Utilizarea operatorului MINUS

COLA

COLB

A

A

C

D

Un exemplu practic de folosire a acestor operatori poate fi dat daca ne imaginam ca pentru cercul de informatica de la liceul vostru, profesorul coordonator de cerc a intocmit un tabel info continand numele prenumele si clasa elevilor inscrisi la acest cerc. Similar, profesorul de la cercul de matematica a realizat un tabel mate cu aceeleasi coloane, memorand elevii de la cercul de matematica.

Directorul scolii doreste, de exemplu, o lista cu elevii inscrisi la ambele cercuri. Nu aveti altceva de facut decat sa scrieti urmatoarea comanda:

SELECT nume, prenume, clasa FROM info

INTERSECT

SELECT nume, prenume, clasa FROM mate

Desigur puteti combina mai mult de doua interogari folosind operatorii UNION INTERSECT si MINUS. Implicit operatorii sunt evaluati de jos in sus, insa puteti indica ordinea de efectuare a acestor operatii prin folosirea parantezelor. De exemplu comanda

SELECT colA, colB FROM A

UNION

SELECT colC, colD FROM B

INTERSECT

SELECT colE, colF FROM C

va returna tabelul II.3.16 in timp ce comanda

SELECT colA, colB FROM A

UNION

(SELECT colC, colD FROM B

INTERSECT

SELECT colE, colF FROM C)

va returna tabelul II.3.17.

Tabelul II.3.16.

COLA

COLB

A

B

C

D

Tabelul II.3.17.

COLA

COLB

A

A

B

B

C

C

D

D



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1615
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