UNION ALL UNION Analisis Aturan Operasi Set dalam Proses Penggabungan Data

3.1.5.2 UNION ALL

Operator UNION ALL menggabungkan masing-masing hasil dari perintah SELECT menjadi sebuah SET hasil result set. Contoh di bawah ini menggambarkan operasi UNION ALL: Seperti yang kita lihat pada hasil query di atas, terdapat satu customer yang dihasilkan oleh dua query SELECT, muncul sebanyak dua kali Flowtech Inc.. Operator UNION ALL menggabungkan semua output dari kedua query SELECT tanpa peduli tentang duplikasi apapun di result set.

3.1.5.3 UNION

Operator UNION mengembalikan semua baris yang berbeda all distinct rows diambil oleh dua query SELECT. Operator UNION mengeliminasi duplikasi yang terjadi pada result set hasil penggabungan dua query SELECT. Contoh di bawah ini menggambarkan operasi UNION: SELECT CUST_NBR, NAME FROM CUSTOMER WHERE REGION_ID = 5 UNION ALL SELECT C.CUST_NBR, C.NAME FROM CUSTOMER C WHERE C.CUST_NBR IN SELECT O.CUST_NBR FROM CUST_ORDER O, EMPLOYEE E WHERE O.SALES_EMP_ID = E.EMP_ID AND E.LNAME = MARTIN; CUST_NBR NAME ---------- ------------------------------ 1 Cooper Industries 2 Emblazon Corp. 3 Ditech Corp. 4 Flowtech Inc. 5 Gentech Industries 4 Flowtech Inc. 8 Zantech Inc. Query di atas adalah modifikasi dari query sebelumnya, yaitu dengan mengganti operator UNION ALL dengan operator UNION. Perhatikan bahwa hasil dari query di atas hanya berisi semua baris yang berbeda all distinct rows dan tidak terdapat duplikasi baris. Untuk mengeliminasi duplikasi baris, operasi UNION memerlukan tambahan proses jika dibandingkan dengan operasi UNION ALL. Tambahan proses yang dimaksud meliputi proses sorting dan filtering dari result set. Jika kita perhatikan baik-baik, kita akan menemukan bahwa result set dari operasi UNION ALL adalah tidak urut, sedangkan result set dari operasi UNION adalah urut. Tambahan proses pada operasi UNION ini tentu saja memerlukan waktu tambahan jika dibandingkan dengan operasi UNION ALL meskipun tidak ada duplikasi yang harus dihilangkan. Jika kita sudah yakin tidak akan ada duplikasi di dua buah query SELECT, maka lebih baik kita gunakan operasi UNION ALL untuk menggabungkan data. SELECT CUST_NBR, NAME FROM CUSTOMER WHERE REGION_ID = 5 UNION SELECT C.CUST_NBR, C.NAME FROM CUSTOMER C WHERE C.CUST_NBR IN SELECT O.CUST_NBR FROM CUST_ORDER O, EMPLOYEE E WHERE O.SALES_EMP_ID = E.EMP_ID AND E.LNAME = MARTIN; CUST_NBR NAME ---------- ------------------------------ 1 Cooper Industries 2 Emblazon Corp. 3 Ditech Corp. 4 Flowtech Inc. 5 Gentech Industries 8 Zantech Inc.

3.1.5.4 INTERSECT