Database
 sql >> Baza danych >  >> RDS >> Database

Operatory SET w SQL

Operator używany do łączenia lub łączenia dwóch zapytań to nic innego jak operatory SET. Operatory podzielone na operatory SET są następujące:

  1. Operator UNION.
  2. Operator UNION ALL”.
  3. Operator PRZECIĘCIE.
  4. Operator MINUS.

Zasady, których należy przestrzegać, aby korzystać z Operatora SET, są następujące:

  • Liczba kolumn i kolejność kolumn muszą być takie same.
  • Typ danych musi być zgodny.

Zrozummy każdy z operatorów SET na przykładach.

Rozważ poniższe tabele wraz z podanymi rekordami.

Tabela 1:Pracownicy

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY ROBOCZE_GODZINY PŁEĆ
1001 VAIBHAVI MISHRA 65000 PUNE WYROCZNIA 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA WYROCZNIA 1 9 M
1003 NIKHIL VANI 50000 JAIPUR FMW 2 10 M
2001 PRACI SHARMA 55500 CZANDIGAR WYROCZNIA 1 10 F
2002 PRZYJMUJ SIĘ JAIN 65500 PUNE FMW 2 12 M
2003 RUCHIKA JAIN 50000 MUMBAJ TESTOWANIE 4 9 F
3001 PRANOTI SHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA GDZIE 50500 JAIPUR FMW 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAJ JAVA 3 12 M
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4 10 M

Tabela2:Pracownik.

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY ROBOCZE_GODZINY PŁEĆ
1001 Vaibhav Szarma 65000 PUNE WYROCZNIA 1 12 M
1002 Nikhil Wani 60000 NOIDA WYROCZNIA 1 9 M
1003 Waibhavi Miszra 50000 JAIPUR FMW 2 10 F
2001 Ruchika Jain 55500 CZANDIGAR WYROCZNIA 1 10 F
2002 Praci Szarma 65500 PUNE FMW 2 12 F
2003 Bhawesz Jain 50000 MUMBAJ TESTOWANIE 4 9 M
3001 Deepam Jauhari 55500 PUNE JAVA 3 9 M
3002 ANUJA GDZIE 50500 JAIPUR FMW 2 9 F
3003 Pranoti Shende 58500 MUMBAJ JAVA 3 12 F
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4 10 M

Tabela3:Menedżer.

Identyfikator menedżera nazwa_menedżera manager_department
1 Snehdeep Kaur WYROCZNIA
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TESTOWANIE

Tabela 4:Menedżer1.

Identyfikator menedżera nazwa_menedżera manager_department
1 Ishita Agrawal WYROCZNIA
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Paweł Oakip TESTOWANIE

Operator UNION

Operator UNION jest pierwszym operatorem używanym do scalania lub łączenia dwóch lub więcej instrukcji SELECT. Wtedy i tylko wtedy, gdy ich liczba kolumn i kolejność kolumn są takie same.

Zduplikowane wiersze nie będą brane pod uwagę w wyniku uzyskanym po wykonaniu operacji UNION.

Składnia operacji UNION jest następująca:

SELECT * FROM TABLE_NAME1 UNION SELECT * FROM TABLE_NAME2;

Przykład 1: Wykonaj zapytanie, aby wykonać operację UNION między tabelą pracowników a tabelą pracowników.

SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane od pracowników, a drugie zapytanie SELECT pobiera dane z danych pracowników, a na obu zapytaniach SELECT wykonywana jest operacja UNION.

Operacja UNION odrzuci zduplikowane wiersze między obiema tabelami. Następujące dane wyjściowe są pokazane jako:

Wyświetlane są oba rekordy tabeli z wyjątkiem zduplikowanych rekordów.

Przykład 2: Wykonaj zapytanie, aby wykonać operację UNION między tabelą Employees a tabelą Employee. Ale wyświetlaj tylko te rekordy pracowników z tabeli pracowników, które należą do miasta Bombaj, a z tabeli pracowników tylko te rekordy pracowników, których wynagrodzenie jest większe niż 50000 i mniejsze niż 60000.

SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION SELECT * FROM EMPLOYEE WHERE SALARY > 50000 AND SALARY < 60000;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera tylko te rekordy, których pracownik należy do miasta Bombaj z tabeli Pracownicy. Wykonanie operacji UNION z drugim zapytaniem SELECT spowoduje pobranie z tabeli pracowników tylko tych rekordów, których wynagrodzenie pracownika jest większe niż 50000, ale mniejsze niż 60000. Operacja UNION odrzuci zduplikowane wiersze między obiema tabelami.

Następujące dane wyjściowe są pokazane jako:

Wyświetlane są oba rekordy tabeli z wyjątkiem zduplikowanych rekordów.

Przykład 3: Wykonaj zapytanie, aby wykonać operację UNION między tabelą Employees a tabelą Employee. Chcemy tylko te rekordy z tabeli Pracownicy, których miasto pracownika należy do „Pune” i „Jaipur”.

SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'JAIPUR') UNION SELECT * FROM EMPLOYEE;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera te rekordy, których pracownicy należą do miast „Pune” i „Jaipur” z tabeli Pracownicy. Operacja UNION jest wykonywana na rekordach pobranych z drugiego zapytania SELECT od pracownika tabeli.

Operacja UNION odrzuci zduplikowane wiersze między obiema tabelami. Następujące dane wyjściowe są pokazane jako:

Jak wszyscy widzimy, wynik pierwszych pięciu rekordów to ci pracownicy, którzy należą do miasta Pune lub Jaipur. Pozostałe rekordy pochodzą z tabeli pracowników, drugiego zapytania SELECT.

Wyświetlane są oba rekordy tabeli z wyjątkiem zduplikowanych rekordów.

Przykład 4: Wykonaj zapytanie, aby wykonać operację UNION między tabelą Employees a tabelą Employee. Chcemy tylko te rekordy z tabeli Pracownik, którego imię zaczyna się na V.

SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE WHERE FIRST_NAME LIKE 'V%';

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera wszystkie rekordy z tabeli Pracownicy. Operacja UNION jest wykonywana na rekordach pobranych z drugiego zapytania SELECT od pracownika tabeli, którego imię zaczyna się na 'V'.

Operacja UNION odrzuci zduplikowane wiersze między obiema tabelami. Następujące dane wyjściowe są pokazane jako:

Jak wszyscy możemy, pierwsze 10 wyników pochodzi z tabeli Pracownicy, a pozostałe z tabeli Pracownicy, których imię zaczyna się na „V”.

Przykład 5: Wykonaj zapytanie, aby wykonać operację UNION między tabelą menedżera a tabelą menedżera1.

SELECT * FROM MANAGER UNION SELECT * FROM MANAGER1;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane z menedżera, a drugie zapytanie SELECT pobiera dane z danych menedżera1, a na obu zapytaniach SELECT wykonywana jest operacja UNION.

Operacja UNION odrzuci zduplikowane wiersze między obiema tabelami. Następujące dane wyjściowe są pokazane jako:

Wyświetlane są oba rekordy tabeli z wyjątkiem zduplikowanych rekordów.

UNON ALL Operatorzy

Operator UNION ALL łączy wszystkie dane z obu zapytań. W operatorze UNION zduplikowane rekordy nie były uwzględniane w wyniku, ale UNION ALL uważał za zduplikowane rekordy w wyniku uzyskanym po wykonaniu operacji UNION ALL.

Składnia operacji UNION ALL jest następująca:

SELECT * FROM TABLE_NAME1 UNION ALL SELECT * FROM TABLE_NAME2;

Przykład 1: Wykonaj zapytanie, aby wykonać operację UNION ALL między tabelą Employees a tabelą Employee.

SELECT * FROM EMPLOYEES UNION ALL SELECT * FROM EMPLOYEE;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane od pracowników i wykonuje operację UNION ALL na danych pobranych przez Drugie zapytanie SELECT pobiera dane z tabeli pracowników.

Następujące dane wyjściowe są pokazane jako:

Wszystkie rekordy zostaną wyświetlone zarówno z tabel Pracownicy, jak i Pracownik, duplikaty rekordów również zostaną wyświetlone, gdy wykonujemy operację UNION ALL.

Przykład 2: Wykonaj zapytanie, aby wykonać operację UNION ALL między tabelą Employees a tabelą Employee. Ale wyświetl tylko te rekordy pracowników z tabeli pracowników, które należą do miasta Bombaj. Z tabeli pracowników tylko te rekordy pracowników, których wynagrodzenie pracownika wynosi 60500, a miasto to „Mumbai”.

SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION ALL SELECT * FROM EMPLOYEE WHERE SALARY = 60500 AND CITY = 'MUMBAI';

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera tylko te rekordy, których pracownik należy do miasta Bombaj z tabeli Pracownicy. I wykonaj operację UNION ALL z drugim zapytaniem SELECT, aby pobrać z tabeli pracowników tylko te rekordy, których wynagrodzenie pracownika wynosi 60500 i miasto to „Mumbai”.

Następujące dane wyjściowe są pokazane jako:

Wyświetlane są oba rekordy tabeli, w tym zduplikowane rekordy, gdy wykonujemy operacje UNION ALL.

Przykład 3: Wykonaj zapytanie, aby wykonać operację UNION między tabelą Employees a tabelą Employee. Chcemy tylko te rekordy z tabeli Pracownicy, których miasto pracownika należy do „Pune”, „Mumbai” i „Jaipur”.

SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'MUMBAI', 'JAIPUR') UNION ALL SELECT * FROM EMPLOYEE;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera te rekordy, których pracownicy należą do miast „Pune”, „Mumbai” i „Jaipur” z tabeli Pracownicy. Operacja UNION ALL jest wykonywana na rekordach pobranych z drugiego zapytania SELECT od pracownika tabeli.

Następujące dane wyjściowe są pokazane jako:

Wyświetlane są oba rekordy tabeli, w tym zduplikowane rekordy, gdy wykonujemy operacje UNION ALL.

Przykład 4: Wykonaj zapytanie, aby wykonać operację UNION ALL między tabelą Manager a tabelą Manager1.

SELECT * FROM MANAGER UNION ALL SELECT * FROM MANAGER1;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane z Managera i wykonuje operacje UNION ALL na danych pobranych przez Drugie zapytanie SELECT pobiera dane z tabeli manager1.

Następujące dane wyjściowe są pokazane jako:

Wszystkie rekordy zostaną wyświetlone z obu tabel Manager i Manager1; zduplikowane rekordy są wyświetlane, gdy wykonujemy operacje UNION ALL.

OPERATORY PRZECIĘCIA

Operator przecięcia służy do łączenia dwóch lub więcej instrukcji SELECT, ale wyświetla tylko dane podobne do instrukcji SELECT.

Składnia operacji INTERSECT jest następująca:

SELECT * FROM TABLE_NAME1 INTERSECT SELECT * FROM TABLE_NAME2;

Przykład 1: Wykonaj zapytanie, aby wykonać operację INTERSECT między tabelą pracowników a tabelą pracowników.

SELECT * FROM EMPLOYEES INTERSECT SELECT * FROM EMPLOYEE;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane od pracowników i wykonuje operację INTERSECT na danych pobranych przez drugie zapytanie SELECT pobiera dane z tabeli pracowników.

Następujące dane wyjściowe są pokazane jako:

Tylko podobne rekordy zostaną wyświetlone z obu tabel, ponieważ wykonaliśmy operację INTERSECT między tabelą Employees a tabelą Employee.

Przykład 2: Wykonaj zapytanie, aby wykonać operację INTERSECT między tabelą menedżera a tabelą menedżera1.

SELECT * FROM MANAGER INTERSECT SELECT * FROM MANAGER1;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane z Managera i wykonuje operację INTERSECT na danych pobranych przez Drugie zapytanie SELECT pobiera dane z tabeli Manager1.

Następujące dane wyjściowe są pokazane jako:

Tylko podobne rekordy zostaną wyświetlone z obu tabel, ponieważ wykonaliśmy operację INTERSECT między tabelą Manager a tabelą Manager1.

Operatorzy MINUS

Operator MINUS służy do zwracania wierszy obecnych w pierwszym zapytaniu, ale nieobecnych w pozostałych zapytaniach bez duplikatów.

Składnia operacji MINUS jest następująca.

SELECT * FROM TABLE_NAME1 EXCEPT SELECT * FROM TABLE_NAME2;

Uwaga: Słowo kluczowe MINUS obsługiwane jest tylko w bazach danych ORACLE. Możemy użyć słowa kluczowego EXCEPT dla innych baz danych, aby wykonać podobną operację.

Przykład 1: Wykonaj zapytanie, aby wykonać operację MINUS między tabelą Employees a tabelą Employee.

SELECT * FROM EMPLOYEES EXCEPT SELECT * FROM EMPLOYEE;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane od pracowników i wykonuje operację MINUS na danych pobranych przez Drugie zapytanie SELECT pobiera dane z tabeli pracowników.

Następujące dane wyjściowe są pokazane jako:

Tylko niepasujące rekordy zostaną wyświetlone z obu tabel, ponieważ wykonaliśmy operację MINUS między tabelą Employees a tabelą Employee.

Przykład 2: Wykonaj zapytanie, aby wykonać operację MINUS między tabelą menedżera a tabelą menedżera1.

SELECT * FROM MANAGER EXCEPT SELECT * FROM MANAGER1;

W powyższym zapytaniu użyliśmy dwóch zapytań SELECT. Pierwsze zapytanie SELECT pobiera dane z Managera i wykonuje operację MINUS na danych pobranych przez Drugie zapytanie SELECT pobiera dane z tabeli Manager1.

Następujące dane wyjściowe są pokazane jako:

Tylko niedopasowane rekordy zostaną wyświetlone z obu tabel, ponieważ wykonaliśmy operację MINUS między tabelą Manager a tabelą Manager1.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić nazwę kolumny w SQL?

  2. SQL BETWEEN — inteligentne wskazówki dotyczące skanowania w poszukiwaniu zakresu wartości

  3. Analiza danych a nauka o danych:jaka jest różnica?

  4. Systemy informacyjne, dane i informacje

  5. Dopasowanie podaży do popytu — rozwiązania, część 1