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_DATAUNION
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