sql >> Database teknologi >  >> RDS >> Oracle

Oracle sæt operatører

Brug af Oracle Set Operators (Union, Union All, Intersect og Minus/Except)

Oracle Set-operatorer kan bruges til at vælge data fra flere tabeller. De kombinerer resultaterne af to eller flere forespørgsler. Når du bruger Set-operatorerne

a) Hver SELECT-sætning skal have samme antal kolonner

b) Kolonnen skal være af samme datatype

c) Kolonne skal angives i samme rækkefølge i alle udvalgte klausuler.

Der er 4 sæt operatorer:

UNION Det returnerer alle unikke rækker returneret fra begge forespørgsler
UNION ALLE Det returnerer alle rækker inklusive dubletter
SKRYDNING Det returnerer kun de rækker, der returneres fra begge forespørgsler
MINUS Det returnerer unikke rækker valgt af første forespørgsel, men ikke rækkerne valgt fra anden forespørgsel

Oracle Union Operatør:

Oracle Union-operatøren bruges til at kombinere resultatsættene af to eller flere  SELECT-sætninger. Det kombinerer begge SELECT-sætningsresultatsæt og fjerner duplikerede rækker mellem dem. Så det returnerer grundlæggende de adskilte rækker

VÆLG bynavn FRA CUST_DATA
UNION
VÆLG bynavn FRA SUPP_DATA;

Denne forespørgsel returnerer forskellige rækker af byer fra "Cust_data" og "Supp_data"

Oracle Union All

Oracle Union All-operatoren bruges til at kombinere resultatsættene af to eller flere SELECT-sætninger. Den kombinerer begge SELECT-sætningsresultatsæt og returnering, som den er. Så det kan indeholde duplikat også afhængigt af datasættet

SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;

Denne forespørgsel returnerer alle rækker (også dublerede rækker)  af byer fra "Cust_data" og "Supp_data"

Forskel mellem  Union og Union All i Oracle

Union returnerer de adskilte rækker, mens Union alle returnerer alle rækkerne. Så vi skal være meget forsigtige, når vi vælger disse sæt operatører

Oracle Intersect

Oracle Intersect-operatoren bruges til at kombinere resultatsættene af to eller flere  SELECT-sætninger. Den kombinerer begge SELECT-sætningsdatasæt og returnerer de distinkte fælles rækker mellem sætningerne. Så hvis der findes en post i den ene forespørgsel og ikke i den anden, vil den blive udeladt fra INTERSECT-resultaterne.

Resultaterne er vist med den skraverede del i ovenstående figur

SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;

Denne forespørgsel returnerer almindeligt bynavn fra "Cust_data" og "Supp_data"

Forskel mellem Intersect og Join

1) INTERSECT-operator bruges til at hente de fælles poster fra både select-klausulen i Intersect Operator, hvorimod Join bruges til at hente data fra to tabeller baseret på specificeret tilstand
2) INTERSECT foretager sammenligningen for alle kolonner, mens INNER JOIN kun de angivne kolonner.
3) INTERSECT-operatoren returnerer næsten samme resultater som INNER JOIN-sætning mange gange.

Oracle Minus

Sql minus operator bruges til at kombinere resultatsættene af to eller flere  SELECT-sætninger. Den kombinerer både SELECT-sætningen og returnerer  rækkerne, som er valgt fra den første select-sætning, og fjerner derefter fra datasættet alle rækkerne, der er hentet fra den anden select-sætning

Resultaterne er vist med den skraverede del i ovenstående figur

SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;

Denne forespørgsel returnerer bynavn fra "Cust_data" minus bynavnet "Supp_data"

Da alle data, der returneres fra select-sætningen, er de samme, genererede det ingen rækker.

Lad os indsætte en anden række i cust_data og se resultaterne

Lad os nu se, om vi laver minus af cust_data fra supp_data

SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

Vi har ikke minus operator i  Mange RDBMS som sql server, mysql. Der bruger vi undtagen i stedet for minus, og den har samme funktionalitet som minus

Disse alle sql-sæt-operatorer er gyldige for RDBMS, der bruges i Market som Oracle, mysql, sql-server, Postgres, Teradata

Relaterede artikler
slet dublerede poster i Oracle :Tips og måder til, hvordan du sletter duplikerede rækker fra Oracle-tabellen . Forskellige muligheder er givet for at slette de duplikerede rækker uden problemer
Oracle Sql tutorials:Indeholder listen over alle de nyttige Oracle sql artikler. Udforsk dem for at lære om Oracle SQL, selvom du kender Oracle SQL
Oracle-interviewspørgsmål :Tjek denne side for de 49 bedste Oracle-interviewspørgsmål og -svar:Grundlæggende , Oracle SQL for at hjælpe dig i interviews.Der findes også yderligere materiale
where-sætning i Oracle :Begrænsning af datasættet, where-sætning, hvad er where-sætning i sql-sætning, sammenligningsoperatørens
enkeltrække-funktioner i Oracle:Tjek dette for at finde ud af Enkeltrække-funktioner i sql, Oracle-data funktioner, numeriske funktioner i sql, tegnfunktion i sql


  1. Sådan fungerer UUID_SHORT() i MariaDB

  2. Returner tilfældige rækker fra en tabel i MariaDB

  3. Oprettelse af profiler i Oracle til brugersikkerhed

  4. Sådan installeres SQL Server på en M1 Mac (ARM64)