sobota, 6 listopada 2010

Kurs Oracle SQL. Operatory zbiorowe

OPERATORY ZBIOROWE



Wszystkie operatory zbiorowe dotyczą te same zasady:


  • Kolumny na tych samych pozycjach muszą być tego samego typu.
  • Zapytania muszą zwracać tą samą liczbę kolumn.
  • Nazwy kolumn w wyniku pobierane są z pierwszego zapytania.
  • Sortować można tylko wynik całości


UNION ALL




powoduje, że w wyniku zapytania otrzymujemy sumę wszystkich wierszy, które znajdowały się w obu zapytaniach składowych.

UNION


powoduje, że w wyniku zapytania otrzymujemy sumę wszystkich wierszy, które znajdowały się w obu zapytaniach składowych, ale z wyniku końcowego eliminowane są wiersze, które powtarzają się w obu zbiorach składowych.
Różnicę widać na przykładzie:



Najpierw wyświetliłem wszystkich którzy pracują w departamencie o numerze 90, następnie wszystkich zarabiających powyżej 12000$. Przy korzystaniu z operatora union all, osoby się powtarzają. Kiedy w kolejnym przykładzie zastosowałem union, powtórki zostały wyeliminowane.


INTERSECT


Połączenie za pomocą intersect wyświetla tylko te wiersze które wystąpiły w obu zbiorach.





MINUS


Połączenie przy pomocy minus eliminuje z pierwszego zbioru te rekordy które wystąpiły w drugim zbiorze. W tym wypadku wyświetlone zostały tylko te osoby których zarobki są wyższe niż 12 000 ale jednocześnie nie pracują w departamencie numer 90.











Ten temat omawiam na poniższych szkoleniach:
• Podstawy Oracle SQL
• Podstawy SQL i PL/SQL
Możesz w nich uczestniczyć, a jako czytelnik tego bloga otrzymasz 10% zniżki - poinformuj o tym fakcie konsultanta.

4 komentarze:

  1. Bardzo ważna sprawa, operator MINUS usuwa duplikaty. To naprawde 'where not exists' po wymienionych w zapytaniach kolumnach

    OdpowiedzUsuń
  2. Super blog. Działam w MySQL i MSSQL, a teraz zaczynam SQL w Oracle. Niby podobnie, ale jest trochę różnic, a blog jest naprawdę bardzo pomocny. Polecam!

    OdpowiedzUsuń