działania na zbiorach SQL - THE DATA SCIENCE LIBRARY https://sigmaquality.pl/tag/dzialania-na-zbiorach-sql/ Wojciech Moszczyński Sun, 06 Oct 2024 09:30:12 +0000 pl-PL hourly 1 https://wordpress.org/?v=6.8.3 https://sigmaquality.pl/wp-content/uploads/2019/02/cropped-ryba-32x32.png działania na zbiorach SQL - THE DATA SCIENCE LIBRARY https://sigmaquality.pl/tag/dzialania-na-zbiorach-sql/ 32 32 14_SQL. Działania na zbiorach SQL: operator UNION https://sigmaquality.pl/mysql-kurs-podstawowy/14_sql-dzialania-na-zbiorach-sql-operator-union/ Sun, 24 May 2015 07:12:00 +0000 http://sigmaquality.pl/?p=1710 Dzisiaj poznamy operator UNION. Relacyjne bazy danych umożliwiają działania na zbiorach SQL Oracle. Bazy danych składają się z rekordów, które podlegają grupowaniu, segregowaniu, wydzielaniu i [...]

Artykuł 14_SQL. Działania na zbiorach SQL: operator UNION pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>

Dzisiaj poznamy operator UNION. Relacyjne bazy danych umożliwiają działania na zbiorach SQL Oracle. Bazy danych składają się z rekordów, które podlegają grupowaniu, segregowaniu, wydzielaniu i szukaniu części wspólnych. 

 Prowadząc  działania na zbiorach SQL wykorzystuje się operatory teoriomnogościowe. 

Argumentami operatorów teoriomnogościowych muszą być dane składające się z tej samej ilości kolumn

Działania na zbiorach SQL prowadzi się używając następujących operatorów teoriomnogościowych:

Skorzystamy z tabel EMPLOYEES, JOBS z bezpłatnej bazy Oracle HR dostępnej tutaj:

http://www.oracle.com/technetwork/database/express-edition/downloads/index.html

 

Operator UNION

Operator UNION służy do łączenia tabel. Spróbujmy połączyć obie tabele zwykłą instrukcją SELECT i FROM.

SELECT SALARY, MIN_SALARY

FROM EMPLOYEES, JOBS;

Otrzymujemy tabelę wynikową:

Uzyskaliśmy iloczyn kartezjański czyli kombinację wszystkich wierszy z pierwszej tabeli ze wszystkimi wierszami drugiej tabeli. Instrukcja była więc błędna. Teraz zostanie użyty operator UNION.

SELECT SALARY

FROM EMPLOYEES

UNION

SELECT MIN_SALARY

FROM JOBS;

Otrzymujemy tabelę wynikową:

Otrzymaliśmy wszystkie indywidualne wartości ze zbioru EMPLOYEES i wszystkie indywidualne wartości ze zbioru JOBS. To tak ja byśmy użyli tabeli przestawnej aby wylistowała wszystkie wartości bez powtórzeń. UNION łączy więc wszystkie liczby obu zbiorów eliminuje powtarzające się wartości i przedstawia to w formie posortowanej rosnąco listy.

 Operatory teoriomnogościowe (UNION, INTERSEC, MINUS) eliminują domyślnie z tabeli wynikowej powtarzające się wiersze , co odpowiada omówionej wcześniej klauzuli DISTINCT. 

Gdybyśmy chcieli zrezygnować z eliminacji powtórek, możemy zastosować UNION ALL.

SELECT SALARY

FROM EMPLOYEES

UNION ALL

SELECT MIN_SALARY

FROM JOBS;

Otrzymujemy tabelę wynikową:

Operator UNION ALL wylistował obie wskazane w tabelach kolumnach, zachowując ich kolejność i powtarzające się wartości. Czerwona linia wskazuje gdzie kończy się tabela EMPLOYEES a zaczyna tabela JOBS.

Artykuł 14_SQL. Działania na zbiorach SQL: operator UNION pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>