UNION ir UNION ALL yra du svarbiausi SQL operatoriai, naudojami duomenų bazėje, norint sujungti kelių lentelių rezultatų rinkinį. Šie operatoriai leidžia naudoti kelias SELECT užklausas, gauti norimus rezultatus ir sujungti juos į galutinę išvestį . Šiame straipsnyje mes pamatysime, kuo jie skiriasi vienas nuo kito. Prieš palygindami trumpai aptarsime šiuos operatorius.
kaip java paversti eilutę į sveikąjį skaičių
Kas yra Sąjungos operatorius?
„Union“ operatorius „MySQL“ leidžia sujungti du ar daugiau rezultatų iš kelių SELECT užklausų į vieną rezultatų rinkinį. Ji turi numatytąją funkciją pašalinti pasikartojančias eilutes iš lentelių. Ši operatoriaus sintaksė visada naudoja stulpelio pavadinimą pirmame SELECT sakinyje kaip išvesties stulpelių pavadinimus.
MySQL Sąjunga turi laikytis šių pagrindinių taisyklių:
- Stulpelių skaičius ir tvarka visose užklausose turi būti vienodi.
- Kiekvienos pasirinkimo užklausos atitinkamos stulpelių pozicijos turi turėti suderinamą duomenų tipą.
- Stulpelio pavadinimas, pasirinktas skirtingose SELECT užklausose, turi būti ta pačia tvarka.
- Pirmosios SELECT užklausos stulpelio pavadinimas bus išvesties stulpelių pavadinimai.
PASTABA: turime žinoti, kad Sąjunga ir prisijungimas skiriasi.
- JOIN sujungia duomenis iš kelių skirtingų lentelių, o UNION sujungia duomenis iš kelių panašių lentelių.
- JOIN prideda išvestį horizontaliai, o UNION sujungia rezultatų rinkinį vertikaliai.
Toliau pateiktame vaizdiniame vaizde tai aiškiau paaiškinama:
Norėdami sužinoti daugiau apie Sąjungos operatorių, spustelėkite čia.
Kas yra „Union All“?
Operatorius UNION ALL sujungia du ar daugiau rezultatų iš kelių SELECT užklausų ir grąžina visus įrašus į vieną rezultatų rinkinį. Tai nepašalina pasikartojančių eilučių iš SELECT teiginių išvesties.
Tai galime suprasti naudodami tokį vaizdinį vaizdą.
„Union“ prieš „Union All“ operatorių
Šioje palyginimo lentelėje greitai paaiškinami pagrindiniai jų skirtumai:
SĄJUNGOS | SĄJUNGOS VISI |
---|---|
Jis sujungia rezultatų rinkinį iš kelių lentelių ir grąžina skirtingus įrašus į vieną rezultatų rinkinį. | Jis sujungia rezultatų rinkinį iš kelių lentelių ir grąžina visus įrašus į vieną rezultatų rinkinį. |
Toliau pateikiamas pagrindinis sintaksė UNION operatoriaus: PASIRINKITE stulpelių_sąrašą IŠ lentelės1 SĄJUNGOS SELECT stulpelių_sąrašas FROM lentelė2; | Toliau pateikiamas pagrindinis sintaksė UNION ALL operatoriaus: PASIRINKITE stulpelių_sąrašą IŠ lentelės1 SĄJUNGOS VISI SELECT stulpelių_sąrašas FROM lentelė2; |
Ji turi numatytąją funkciją, kuri pašalina pasikartojančias eilutes iš išvesties. | Jis neturi galimybės pašalinti pasikartojančias eilutes iš išvesties. |
Jo veikimas lėtas nes reikia laiko rasti ir pašalinti pasikartojančius įrašus. | Jo veikimas greitas nes tai nepanaikina pasikartojančių eilučių. |
Dauguma duomenų bazės vartotojų nori naudoti šį operatorių. | Dauguma duomenų bazės vartotojų nenori naudoti šio operatoriaus. |
Sąjungos ir visos Sąjungos pavyzdys
Leiskite mums suprasti skirtumus tarp „Union“ ir „Union All“ operatorių per pavyzdį. Tarkime, kad turime lentelę pavadinimu ' Studentas 'ir' Studentas 2 “, kuriame yra šie duomenys:
Lentelė: Studentas
Lentelė: Studentas2
Po SQL sakinio grąžinamas išskirtinis miestų pavadinimas iš abiejų lentelių naudojant UNION užklausą:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Įvykdę aukščiau pateiktą teiginį, gausime žemiau pateiktą išvestį, nes Sąjungos operatorius pateikia tik skirtingas reikšmes.
Po SQL sakinio grįžta visų miestų pavadinimai, įskaitant dublikatus iš abiejų lentelių naudojant UNION ALL užklausą:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Įvykdę aukščiau pateiktą teiginį, gausime žemiau pateiktą išvestį, nes „Union All“ operatorius grąžina visus įrašus nepašalindamas atskirų verčių.