sql >> Databáze >  >> RDS >> Oracle

Operátoři sady Oracle

Používání Oracle Set Operators (Union,Union All,Intersect a Minus/Except)

Operátory Oracle Set lze použít k výběru dat z více tabulek. Kombinují výsledky dvou nebo více dotazů. Při použití operátorů nastavení

a) Každá klauzule SELECT musí mít stejný počet sloupců

b) Sloupec musí být stejného datového typu

c) Sloupec by měl být specifikován ve stejném pořadí ve všech vybraných klauzulích.

Existují 4 operátory sady:

UNION Vrátí všechny jedinečné řádky vrácené z obou dotazů
UNIE VŠECHNY Vrátí všechny řádky včetně duplikátů
INTERSEC Vrátí pouze řádky vrácené z obou dotazů
MINUS Vrátí jedinečné řádky vybrané prvním dotazem, ale ne řádky vybrané z druhého dotazu

Operátor Oracle Union:

Operátor Oracle Union se používá ke kombinaci sad výsledků dvou nebo více příkazů SELECT. Kombinuje obě sady výsledků příkazu SELECT a odstraňuje duplicitní řádky mezi nimi. Takže v podstatě vrací odlišné řádky

VYBERTE název_města Z CUST_DATA
UNION
SELECT název_města FROM SUPP_DATA;

Tento dotaz vrátí odlišné řádky měst z „Cust_data“ a „Supp_data“

Oracle Union All

Operátor Oracle Union All se používá ke kombinaci sad výsledků dvou nebo více příkazů SELECT. Kombinuje obě sady výsledků příkazu SELECT a návrat tak, jak je. Může tedy obsahovat duplikáty také v závislosti na datové sadě

SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;

Tento dotaz vrátí všechny řádky (také duplicitní řádky) měst z „Cust_data“ a „Supp_data“

Rozdíl mezi  Union a Union All v Oracle

Union vrátí jednotlivé řádky, zatímco Union all vrátí všechny řádky. Takže musíme být velmi opatrní při výběru těchto operátorů množin

Oracle Intersect

Operátor Oracle Intersect se používá ke kombinaci sad výsledků dvou nebo více příkazů SELECT. Kombinuje obě datové sady příkazů SELECT a vrací různé společné řádky mezi příkazy. Pokud tedy záznam v jednom dotazu existuje a ve druhém nikoli, bude z výsledků INTERSECT vynechán.

Výsledky jsou znázorněny šrafovanou částí na obrázku výše

SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;

Tento dotaz vrátí běžný název města z „Cust_data“ a „Supp_data“

Rozdíl mezi Intersect a Join

1) Operátor INTERSECT se používá k načtení společných záznamů z obou klauzule select operátora Intersect, zatímco Join se používá k načtení dat ze dvou tabulek na základě zadané podmínky
2) INTERSECT provádí porovnání pro všechny sloupce, zatímco INNER JOIN pouze zadané sloupce.
3) Operátor INTERSECT vrací téměř stejné výsledky jako klauzule INNER JOIN mnohokrát.

Oracle mínus

Operátor Sql minus se používá ke kombinaci sad výsledků dvou nebo více příkazů SELECT. Kombinuje oba příkazy SELECT a vrací   řádky, které jsou vybrány z prvního příkazu select, a poté z datové sady odstraní všechny řádky načtené z druhého příkazu select

Výsledky jsou znázorněny šrafovanou částí na obrázku výše

SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;

Tento dotaz vrátí název města z „Cust_data“ mínus název města „Supp_data“

Protože všechna data vrácená z příkazu select jsou stejná, nevygeneroval žádné řádky.

Pojďme vložit jeden jiný řádek do cust_data a podívat se na výsledky

Nyní se podívejme, jestli uděláme minus cust_data ze supp_data

SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

V mnoha RDBMS, jako je sql server, mysql, nepoužíváme mínusový operátor. Zde používáme kromě místo mínus a má stejnou funkci jako mínus

Tyto všechny operátory sady SQL jsou platné pro RDBMS používané v Marketu, jako je Oracle, mysql, sql server, Postgres, Teradata

Související články
odstranění duplicitních záznamů v oracle:tipy a způsoby, jak odstranit duplicitní řádky z tabulky oracle. Pro odstranění duplicitních řádků bez problémů jsou k dispozici různé možnosti
Výukové programy Oracle Sql:Obsahuje seznam všech užitečných článků Oracle SQL. Prozkoumejte je, abyste se dozvěděli o Oracle Sql, i když znáte Oracle Sql
Otázky k pohovoru s Oracle:Podívejte se na tuto stránku, kde najdete 49 nejčastějších otázek a odpovědí na pohovor Oracle:Základy, Oracle SQL, které vám pomohou při pohovorech. K dispozici je také další materiál
klauzule where v oracle :Omezení datové sady, klauzule where, klauzuli co je kde v příkazu SQL, porovnávací operátor
jednořádkové funkce v Oracle:Podívejte se na toto a zjistěte jednořádkové funkce v sql, data Oracle funkce,Číselné funkce v sql ,Znaková funkce v sql


  1. PreparedStatement a setTimestamp v oracle jdbc

  2. SQL Buddy – Webový nástroj pro správu MySQL

  3. Jak vypsat všechny tabulky v Oracle

  4. Oracle SQL Developer 21.4.2 a SQLcl 21.4.1 jsou nyní k dispozici