11. OPERATORËT MBI BASHKËSITË (UNION, EXCEPT, INTERSECT)
Tre janë operatorët e bashkësive që përdoren në SQL: bashkimi (UNION), prerja (INTERSECT), dhe diferenca (EXCEPT ose MINUS). Në SQL ato përdoren me të njëjtin kuptim të cilat ato kanë në teorinë e bashkësive në matematikë.
- Operatori UNION
Qëllimi i këtij operatori është të kombinojë rezultatet e dy kërkesave SQL së bashku. Ky operator është i ngjashëm me JOIN sepse të dyja përdoren për të lidhur informacion nga disa tabela. Por UNION kërkon qëkollonat korresponduese të tabelave që bashkohen të jenë të njëjta. Gjithashtu, ky operator nxjerr vetëm rekorde të ndryshme nga njëri-tjetri, ngjashmërisht me SELECT DISTINCT. Trajta e përgjithshme e këtij operatori në SQL është
Për shembull, supozojmë se kemi dy tabela, tabela1 dhe tabela2, që përmbajnë njëkollonë me emrin artikulli. Tabela e parë përmban 10 emra artikujsh, ndërsa e dyta 12 emra artikujsh. Dy prej artikujve janë në të dyja tabelat. Zhvillojmë kodin e mëposhtëm për të nxjerrë listën e artikujve në të dyja tabelat.
Tabela e rezultateve do të përmbajë një listë prej 20 artikujsh të ndryshëm nga njëri-tjetri. Në rast se kodi i mësipërm modifikohet dhe operatori UNION zëvendësohet me UNION ALL si më poshtë, atëherë tabela e rezultateve tashmë do të përmbajë 22 rekorde duke përfshirë dy herë artikujt që gjenden në të dyja tabelat.
- Operatori INTERSECT
Operatori i prerjes INTERSECT përdoret ngjashmërisht si operatori i bashkimit, por ndryshimi qëndron në faktin se ndërsa UNION vepron si operatori llogjik OR, INTERSECT vepron si operatori llogjik AND. Një rekord përfshihet në tabelën e rezultateve vetëm në qoftë se bën pjesë në të dyja query-t. Kodi i përgjithshëm paraqitet në trajtën
Nëse do të përdornim shembullin e mësipërm ku në vend të operatoritUNION të vendosnim opëratorin INTERSECT, tabela e rezultateve do të përmbante dy rekorde, dy artikujt të cilat gjenden njëkohësisht në të dyja tabelat.
- Operatori EXCEPT ose MINUS
Ky operator do të nxjerrë një tabelë rezultatesh e cila përfshin rekordet e kërkesës së parë të cilat nuk janë tek kërkesa e dytë sipas trajtës
Për shembull, nëse në shembullin e mësipërm në vend të operatorit UNION të vendosnim operatorin MINUS, atëherë tabela e rezultateve do të përmbante 8 rekorde, pra nga 10 artikujt tek tabela1 janë hequr dy prej tyre sepse ato gjenden në listën e artikujve tek tabela2.