sql >> Databasteknik >  >> RDS >> Oracle

Oracle Set Operators

Använda Oracle Set Operators (Union, Union All, Intersect och Minus/Except)

Oracle Set-operatorer kan användas för att välja data från flera tabeller. De kombinerar resultaten av två eller flera frågor. När du använder Set-operatorerna

a) Varje SELECT-sats måste ha samma antal kolumner

b) Kolumnen måste vara av samma datatyp

c) Kolumn ska anges i samma ordning i alla select-satser.

Det finns 4 Set-operatorer:

UNION Den returnerar alla unika rader som returneras från båda frågorna
UNION ALLA Den returnerar alla rader inklusive dubbletter
SKÄRSA Den returnerar endast raderna som returneras från båda frågorna
MINUS Den returnerar unika rader valda av den första frågan men inte raderna valda från den andra frågan

Oracle Union Operator :

Oracle Union-operatorn används för att kombinera resultatuppsättningarna av två eller flera  SELECT-satser. Den kombinerar både resultatuppsättningen SELECT-sats och tar bort dubbletter av rader mellan dem. Så den returnerar i princip de distinkta raderna

VÄLJ ortsnamn FRÅN CUST_DATA
UNION
SELECT city_name FRÅN SUPP_DATA;

Den här frågan returnerar distinkta rader med städer från "Cust_data" och "Supp_data"

Oracle Union All

Oracle Union All-operatorn används för att kombinera resultatuppsättningarna av två eller flera SELECT-satser. Den kombinerar både resultatuppsättningarna för SELECT-satsen och returen som den är. Så det kan innehålla dubbletter också beroende på datamängden

SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;

Den här frågan returnerar alla rader (även dubbletter av rader) med städer från "Cust_data" och "Supp_data"

Skillnaden mellan  Union och Union All i Oracle

Union returnerar de distinkta raderna medan Union alla returnerar alla rader. Så vi måste vara mycket försiktiga när vi väljer dessa setoperatorer

Oracle Intersect

Oracle Intersect-operatorn används för att kombinera resultatuppsättningarna av två eller flera SELECT-satser. Den kombinerar de båda SELECT-satsdatauppsättningarna och returnerar de distinkta vanliga raderna mellan satserna. Så om en post finns i en fråga och inte i den andra, kommer den att utelämnas från INTERSECT-resultaten.

Resultaten visas av den skuggade delen i ovanstående figur

SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;

Den här frågan returnerar vanligt stadsnamn från "Cust_data" och "Supp_data"

Skillnaden mellan Intersect och Join

1) INTERSECT-operatorn används för att hämta de gemensamma posterna från både select-satsen i Intersect Operator, medan Join används för att hämta data från två tabeller baserat på specificerat villkor
2) INTERSECT gör jämförelsen för alla kolumner medan INNER JOIN endast de angivna kolumnerna.
3) INTERSECT-operatorn returnerar nästan samma resultat som INNER JOIN-satsen många gånger.

Oracle Minus

Sql minusoperatorn används för att kombinera resultatuppsättningarna av två eller flera  SELECT-satser. Den kombinerar både SELECT-satsen och returnerar  raderna som väljs från första select-satsen och tar sedan bort från datamängden alla rader som hämtats från andra select-satsen

Resultaten visas av den skuggade delen i ovanstående figur

SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;

Den här frågan returnerar stadsnamn från "Cust_data" minus stadsnamnet "Supp_data"

Eftersom all data som returneras från select-satsen är densamma genererade den inga rader.

Låt oss infoga en annan rad i cust_data och se resultatet

Låt oss nu se om vi gör minus av cust_data från supp_data

SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

Vi har ingen minusoperator i  Många RDBMS som sql server, mysql. Där använder vi utom i stället för minus och den har samma funktionalitet som minus

Dessa alla sql-uppsättningsoperatorer är giltiga för RDBMS som används i Market som Oracle, mysql, sql-server, Postgres, Teradata

Relaterade artiklar
ta bort dubblettposter i Oracle :Tips och sätt på hur man tar bort dubblettrader från Oracle-tabellen . Olika alternativ ges för att radera dubblettraderna utan problem
Oracle SQL tutorials :Innehåller listan över alla användbara Oracle SQL-artiklar. Utforska dem för att lära dig om Oracle SQL även om du kan Oracle SQL
Oracle-intervjufrågor :Kolla in den här sidan för de 49 bästa Oracle-intervjufrågorna och svaren :Grunderna , Oracle SQL för att hjälpa dig i intervjuer. Ytterligare material tillhandahålls också
where-sats i oracle :Begränsning av datamängden, where-sats, what is where-sats i SQL-satsen, jämförelseoperatorns
enradsfunktioner i Oracle :Kolla in detta för att ta reda på Enkelradsfunktioner i sql, Oracle-data funktioner,Numeriska funktioner i sql, Teckenfunktion i sql


  1. SQLite CROSS JOIN med ett praktiskt exempel

  2. MySQL-uppdateringstabell baserat på ett annat tabellvärde

  3. Databasindexering i ett nötskal med B+tree och Hash i jämförelse

  4. Skriva en csv-fil till SQL Server-databas med python