Operator yang digunakan untuk menggabungkan atau menggabungkan dua query tidak lain adalah operator SET. Operator yang dikategorikan ke dalam operator SET adalah sebagai berikut:
- Operator UNION.
- Operator UNION ALL.
- Operator INTERSECT.
- Operator MINUS.
Aturan yang harus diikuti untuk beroperasi menggunakan SET Operator adalah sebagai berikut:
- Jumlah Kolom dan Urutan Kolom harus sama.
- Jenis Data harus Kompatibel.
Mari kita pahami masing-masing Operator SET dengan contoh.
Perhatikan tabel berikut beserta catatan yang diberikan.
Tabel1:Karyawan
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID | JAM_KERJA | GENDER |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE | 1 | 12 | B |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NIKHIL | VANI | 50.000 | JAIPUR | FMW | 2 | 10 | M |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 | 10 | B |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | UJI | 4 | 9 | B |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 | 9 | B |
3002 | ANUJA | DIMANA | 50500 | JAIPUR | FMW | 2 | 9 | B |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 | 12 | M |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 | 10 | M |
Tabel2:Karyawan.
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID | JAM_KERJA | GENDER |
1001 | Vaibhav | Sharma | 65000 | PUNE | ORACLE | 1 | 12 | M |
1002 | Nikhil | Vani | 60000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | Vaibhavi | Mishra | 50.000 | JAIPUR | FMW | 2 | 10 | B |
2001 | Ruchika | Jain | 55500 | CHANDIGARH | ORACLE | 1 | 10 | B |
2002 | Prachi | Sharma | 65500 | PUNE | FMW | 2 | 12 | B |
2003 | Bahagia | Jain | 50.000 | MUMBAI | UJI | 4 | 9 | M |
3001 | Deepam | Jauhari | 55500 | PUNE | JAVA | 3 | 9 | M |
3002 | ANUJA | DIMANA | 50500 | JAIPUR | FMW | 2 | 9 | B |
3003 | Pranoti | Shende | 58500 | MUMBAI | JAVA | 3 | 12 | B |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 | 10 | M |
Tabel3:Manajer.
Pengelola | nama_manajer | manajer_departemen |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | UJI |
Tabel4:Manajer1.
Pengelola | nama_manajer | manajer_departemen |
1 | Ishita Agrawal | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Paul Oakip | UJI |
Operator UNION
Operator UNION adalah Operator Pertama yang digunakan untuk menggabungkan atau menggabungkan dua atau lebih pernyataan SELECT. Jika dan hanya jika jumlah kolom dan urutan kolomnya sama.
Baris duplikat tidak akan dipertimbangkan dalam hasil yang diperoleh setelah operasi UNION dilakukan.
Sintaks untuk operasi UNION adalah sebagai berikut,
SELECT * FROM TABLE_NAME1 UNION SELECT * FROM TABLE_NAME2;
Contoh 1: Jalankan kueri untuk melakukan operasi UNION antara tabel Karyawan dan tabel Karyawan.
SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari karyawan dan kueri SELECT Kedua mengambil data dari data karyawan, dan operasi UNION dilakukan pada kedua kueri SELECT.
Operasi UNION akan membuang baris duplikat di antara kedua tabel. Output berikut ditampilkan sebagai:
Kedua record tabel ditampilkan kecuali record duplikat.
Contoh 2: Jalankan kueri untuk melakukan operasi UNION antara tabel Karyawan dan tabel Karyawan. Tapi hanya menampilkan catatan karyawan dari tabel karyawan milik kota Mumbai dan dari tabel karyawan hanya catatan karyawan yang gaji karyawannya lebih besar dari 50000 dan kurang dari 60000.
SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION SELECT * FROM EMPLOYEE WHERE SALARY > 50000 AND SALARY < 60000;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri PILIH Pertama hanya mengambil rekaman yang karyawannya milik kota Mumbai dari tabel Karyawan. Dan melakukan operasi UNION dengan kueri SELECT kedua hanya mengambil catatan yang gaji karyawannya lebih besar dari 50000 tetapi kurang dari 60000 dari tabel karyawan. Operasi UNION akan membuang baris duplikat di antara kedua tabel.
Output berikut ditampilkan sebagai:
Kedua record tabel ditampilkan kecuali record duplikat.
Contoh 3: Jalankan kueri untuk melakukan operasi UNION antara tabel Karyawan dan tabel Karyawan. Kami hanya menginginkan catatan tersebut dari tabel Karyawan yang kota karyawannya termasuk dalam 'Pune' dan 'Jaipur'.
SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'JAIPUR') UNION SELECT * FROM EMPLOYEE;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT pertama mengambil catatan yang karyawannya termasuk kota 'Pune' dan 'Jaipur' dari tabel Karyawan. Operasi UNION dilakukan dengan record yang diambil dari query SELECT kedua dari table employee.
Operasi UNION akan membuang baris duplikat di antara kedua tabel. Output berikut ditampilkan sebagai:
Seperti yang kita semua lihat, hasil lima catatan pertama adalah karyawan yang berasal dari kota Pune atau Jaipur. Dan catatan lainnya berasal dari tabel karyawan, kueri SELECT kedua.
Kedua record tabel ditampilkan kecuali record duplikat.
Contoh 4: Jalankan kueri untuk melakukan operasi UNION antara tabel Karyawan dan tabel Karyawan. Kami hanya menginginkan record-record dari tabel Employee yang nama depannya diawali dengan huruf V.
SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE WHERE FIRST_NAME LIKE 'V%';
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT pertama mengambil semua catatan dari tabel Karyawan. Operasi UNION dilakukan dengan catatan yang diambil dari kueri SELECT kedua dari karyawan tabel yang nama depannya dimulai dengan 'V'.
Operasi UNION akan membuang baris duplikat di antara kedua tabel. Output berikut ditampilkan sebagai:
Seperti yang kita semua dapat, 10 hasil pertama berasal dari tabel Karyawan, dan sisanya dari tabel Karyawan yang nama depannya diawali dengan 'V'.
Contoh 5: Jalankan kueri untuk melakukan operasi UNION antara tabel Manajer dan tabel Manajer1.
SELECT * FROM MANAGER UNION SELECT * FROM MANAGER1;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari Manajer dan kueri SELECT Kedua mengambil data dari data manajer1, dan operasi UNION dilakukan pada kedua kueri SELECT.
Operasi UNION akan membuang baris duplikat di antara kedua tabel. Output berikut ditampilkan sebagai:
Kedua record tabel ditampilkan kecuali record duplikat.
UNION SEMUA Operator
Operator UNION ALL menggabungkan semua data dari kedua kueri. Di operator UNION, catatan duplikat tidak dipertimbangkan dalam hasil, tetapi UNION ALL dianggap catatan duplikat dalam hasil yang diperoleh setelah operasi UNION ALL dilakukan.
Sintaks untuk operasi UNION ALL adalah sebagai berikut,
SELECT * FROM TABLE_NAME1 UNION ALL SELECT * FROM TABLE_NAME2;
Contoh 1: Jalankan kueri untuk melakukan operasi UNION ALL antara tabel Karyawan dan tabel Karyawan.
SELECT * FROM EMPLOYEES UNION ALL SELECT * FROM EMPLOYEE;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari karyawan dan melakukan operasi UNION ALL dengan data yang diambil oleh kueri SELECT Kedua mengambil data dari tabel karyawan.
Output berikut ditampilkan sebagai:
Semua catatan akan ditampilkan dari tabel Karyawan dan Karyawan, catatan duplikat juga ditampilkan saat kami melakukan operasi UNION ALL.
Contoh 2: Jalankan kueri untuk melakukan operasi UNION ALL antara tabel Karyawan dan tabel Karyawan. Tapi hanya menampilkan catatan karyawan dari tabel karyawan milik kota Mumbai. Dari tabel karyawan, hanya catatan karyawan yang gaji karyawannya 60.500 dan kotanya 'Mumbai'.
SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION ALL SELECT * FROM EMPLOYEE WHERE SALARY = 60500 AND CITY = 'MUMBAI';
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri PILIH Pertama hanya mengambil rekaman yang karyawannya milik kota Mumbai dari tabel Karyawan. Dan lakukan operasi UNION ALL dengan kueri SELECT kedua hanya mengambil catatan yang gaji karyawannya 60.500 dan kotanya 'Mumbai' dari tabel karyawan.
Output berikut ditampilkan sebagai:
Kedua record tabel ditampilkan, termasuk record duplikat saat kita melakukan operasi UNION ALL.
Contoh 3: Jalankan kueri untuk melakukan operasi UNION antara tabel Karyawan dan tabel Karyawan. Kami hanya menginginkan catatan tersebut dari tabel Karyawan yang kota karyawannya termasuk dalam 'Pune', 'Mumbai', dan 'Jaipur'.
SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'MUMBAI', 'JAIPUR') UNION ALL SELECT * FROM EMPLOYEE;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT pertama mengambil catatan yang karyawannya termasuk kota 'Pune', 'Mumbai', dan 'Jaipur' dari tabel Karyawan. Operasi UNION ALL dilakukan dengan record yang diambil dari query SELECT kedua dari table employee.
Output berikut ditampilkan sebagai:
Kedua record tabel ditampilkan, termasuk record duplikat saat kita melakukan operasi UNION ALL.
Contoh 4: Jalankan kueri untuk melakukan operasi UNION ALL antara tabel Manajer dan tabel Manajer1.
SELECT * FROM MANAGER UNION ALL SELECT * FROM MANAGER1;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari Manajer dan melakukan operasi UNION ALL dengan data yang diambil oleh kueri SELECT Kedua mengambil data dari tabel manager1.
Output berikut ditampilkan sebagai:
Semua catatan akan ditampilkan dari tabel Manajer dan Manajer1; catatan duplikat ditampilkan saat kami melakukan operasi UNION ALL.
Operator INTERSECT
Operator intersect digunakan untuk menggabungkan dua atau lebih pernyataan SELECT, tetapi hanya menampilkan data yang mirip dengan pernyataan SELECT.
Sintaks untuk operasi INTERSECT adalah sebagai berikut,
SELECT * FROM TABLE_NAME1 INTERSECT SELECT * FROM TABLE_NAME2;
Contoh 1: Jalankan kueri untuk melakukan operasi INTERSECT antara tabel Karyawan dan tabel Karyawan.
SELECT * FROM EMPLOYEES INTERSECT SELECT * FROM EMPLOYEE;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari karyawan dan melakukan operasi INTERSECT dengan data yang diambil oleh kueri SELECT Kedua mengambil data dari tabel karyawan.
Output berikut ditampilkan sebagai:
Hanya record serupa yang akan ditampilkan dari kedua tabel, karena kami melakukan operasi INTERSECT antara tabel Karyawan dan tabel Karyawan.
Contoh 2: Jalankan kueri untuk melakukan operasi INTERSECT antara tabel Manajer dan tabel Manajer1.
SELECT * FROM MANAGER INTERSECT SELECT * FROM MANAGER1;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari Manajer dan melakukan operasi INTERSECT dengan data yang diambil oleh kueri SELECT Kedua mengambil data dari tabel Manajer1.
Output berikut ditampilkan sebagai:
Hanya record serupa yang akan ditampilkan dari kedua tabel, karena kami melakukan operasi INTERSECT antara tabel Manager dan tabel Manager1.
MINUS Operator
Operator MINUS digunakan untuk mengembalikan baris yang ada di kueri pertama tetapi tidak ada di kueri lainnya tanpa duplikat.
Sintaks untuk operasi MINUS adalah sebagai berikut.
SELECT * FROM TABLE_NAME1 EXCEPT SELECT * FROM TABLE_NAME2;
Catatan: Kata kunci MINUS hanya didukung di database ORACLE. Kita dapat menggunakan kata kunci KECUALI untuk database lain untuk melakukan operasi serupa.
Contoh 1: Jalankan kueri untuk melakukan operasi MINUS antara tabel Karyawan dan tabel Karyawan.
SELECT * FROM EMPLOYEES EXCEPT SELECT * FROM EMPLOYEE;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari karyawan dan melakukan operasi MINUS dengan data yang diambil oleh kueri SELECT Kedua mengambil data dari tabel karyawan.
Output berikut ditampilkan sebagai:
Hanya record yang tidak cocok yang akan ditampilkan dari kedua tabel, karena kami melakukan operasi MINUS antara tabel Karyawan dan tabel Karyawan.
Contoh 2: Jalankan kueri untuk melakukan operasi MINUS antara tabel Manajer dan tabel Manajer1.
SELECT * FROM MANAGER EXCEPT SELECT * FROM MANAGER1;
Dalam kueri di atas, kami telah menggunakan dua kueri SELECT. Kueri SELECT Pertama mengambil data dari Manajer dan melakukan operasi MINUS dengan data yang diambil oleh kueri SELECT Kedua mengambil data dari tabel Manajer1.
Output berikut ditampilkan sebagai:
Hanya record yang tidak cocok yang akan ditampilkan dari kedua tabel, karena kami melakukan operasi MINUS antara tabel Manager dan tabel Manager1.