UNION și UNION ALL sunt cei mai esențiali doi operatori SQL utilizați în baza de date pentru combinarea setului de rezultate din mai multe tabele. Acești operatori ne permit să folosim mai multe interogări SELECT, să recuperăm rezultatele dorite și apoi să le combinăm într-o ieșire finală . În acest articol, vom vedea cum sunt diferite unele de altele. Înainte de a face o comparație, vom discuta pe scurt despre acești operatori.
dicţionar c#
Ce este un operator al Uniunii?
Operatorul de unire din MySQL ne permite să combinăm două sau mai multe rezultate din mai multe interogări SELECT într-un singur set de rezultate. Are o caracteristică implicită pentru eliminați rândurile duplicate de la mese. Această sintaxă a operatorului folosește întotdeauna numele coloanei din prima instrucțiune SELECT pentru a fi numele coloanei de ieșire.
MySQL Uniunea trebuie să respecte aceste reguli de bază:
- Numărul și ordinea coloanelor trebuie să fie aceleași în toate interogările.
- Poziția coloanelor corespunzătoare fiecărei interogări selectate trebuie să aibă un tip de date compatibil.
- Numele coloanei selectat în diferitele interogări SELECT trebuie să fie în aceeași ordine.
- Numele de coloană al primei interogări SELECT va fi numele de coloană a rezultatului.
NOTĂ: Trebuie să știm că Union și Join sunt diferite.
- JOIN combină datele din mai multe tabele diferite, în timp ce UNION combină datele din mai multe tabele similare.
- JOIN adaugă rezultatul orizontal, în timp ce UNION combină setul de rezultate pe verticală.
Reprezentarea vizuală de mai jos o explică mai clar:
Pentru a citi mai multe informații despre operatorul Union, faceți clic aici .
Ce este Union All?
Operatorul UNION ALL combină două sau mai multe rezultate din mai multe interogări SELECT și returnează toate înregistrările într-un singur set de rezultate. Nu elimină rândurile duplicate din rezultatul instrucțiunilor SELECT.
O putem înțelege cu următoarea reprezentare vizuală.
Union vs. Union All Operator
Următorul tabel de comparație explică principalele diferențe ale acestora într-un mod rapid:
UNIUNE | UNIREA TOȚI |
---|---|
Combină setul de rezultate din mai multe tabele și returnează înregistrări distincte într-un singur set de rezultate. | Combină setul de rezultate din mai multe tabele și returnează toate înregistrările într-un singur set de rezultate. |
Urmează baza sintaxă al operatorului UNION: SELECTează lista_coloană DIN tabelul 1 UNIUNE SELECT coloane_list FROM table2; | Urmează baza sintaxă al operatorului UNION ALL: SELECTAȚI listă_coloană FROM tabelul 1 UNIREA TOȚI SELECT coloane_list FROM table2; |
Are o caracteristică implicită pentru a elimina rândurile duplicate din rezultat. | Nu are nicio funcție de eliminare a rândurilor duplicate din rezultat. |
Este performanța este lentă deoarece este nevoie de timp pentru a găsi și apoi a elimina înregistrările duplicate. | Este performanta este rapida deoarece nu elimină rândurile duplicate. |
Majoritatea utilizatorilor bazei de date preferă să folosească acest operator. | Majoritatea utilizatorilor bazei de date nu preferă să folosească acest operator. |
Unire și Unire Toate Exemple
Să înțelegem diferențele dintre operatorii Union și Union All printr-un exemplu. Să presupunem că avem un tabel numit „ Student ' și ' Student2 ' care conține următoarele date:
Tabel: Student
Tabel: Student2
Următoarea instrucțiune SQL returnează denumirea distinctă a orașelor din ambele tabele folosind interogarea UNION:
șir de convertor până în prezent
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
După executarea instrucțiunii de mai sus, vom obține rezultatul de mai jos deoarece operatorul Union returnează doar valorile distincte.
Următoarea instrucțiune SQL revine numele tuturor orașelor, inclusiv duplicatele din ambele tabele folosind interogarea UNION ALL:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
După executarea instrucțiunii de mai sus, vom obține rezultatul de mai jos deoarece operatorul Union All returnează înregistrări întregi fără a elimina valori distincte.