SQL UNION vs UNION ALL: Perbedaan, Contoh, dan Kinerja Diuji
Perbedaan di antara keduanya hanyalah satu kata, tetapi memilih yang salah dapat secara diam-diam memberi Anda total yang salah. Lihat keduanya pada data nyata, pelajari aturan yang sama, dan baca apa yang terjadi saat kami menghitung waktunya dalam satu juta baris.
UNIONmenggabungkan hasil dan menghapus baris duplikat.UNION ALLmenyimpan setiap baris.- Deduplikasi biaya berhasil, sehingga
UNION ALLbiasanya lebih cepat untuk dihitung. - Menggunakan
UNIONsebelumSUMdapat menghilangkan nilai sebenarnya secara diam-diam dan memberikan jawaban yang salah. - Defaultnya adalah
UNION ALL, kecuali Anda secara khusus ingin duplikatnya dihapus.
Kedua operator menumpuk hasil dua kueri di atas satu sama lain, sehingga SQL UNION vs UNION ALL mungkin terlihat seperti pilihan kecil. Tidak. Satu kata tambahan akan mengubah hasil Anda dan seberapa keras database harus bekerja.
Kami menjalankan setiap kueri di sini di SQLite 3.50, dan hasil serta waktu yang ditampilkan berasal dari proses tersebut. Perilaku dasarnya adalah SQL standar di seluruh database utama. Namun, pengaturan waktunya akan berbeda tergantung database, data, dan perangkat keras Anda, jadi perlakukan waktu kami sebagai ilustrasi.
Jawaban singkatnya
UNION menggabungkan dua kumpulan hasil dan hanya mengembalikan baris berbeda. UNION ALL menggabungkannya dan mengembalikan semuanya, termasuk duplikat. Itulah perbedaannya, dan sisa artikel ini akan membahas mengapa hal itu penting.
UNION vs UNION SEMUA berdampingan
| Aspek | PERSATUAN | PERSATUAN SEMUA |
|---|---|---|
| Baris duplikat | Dihapus | Disimpan |
| Pekerjaan ekstra | Harus menemukan duplikat | Tidak ada |
| Kecepatan biasa | Lebih lambat | Lebih cepat |
| Baris kembali | Sama atau lebih sedikit | Semuanya |
| Aman sebelum SUM atau COUNT? | Seringkali tidak | Ya |
| Terbaik untuk | Daftar unik | Menggabungkan data, log, total |
Data sampel
Bayangkan sebuah toko yang menyimpan pesanan online dan di dalam toko dalam tabel terpisah. Perhatikan bahwa Asha memiliki dua pesanan online yang identik, dan satu pesanan serupa di toko.
CREATE TABLE online_orders (customer TEXT, total INT);
CREATE TABLE store_orders (customer TEXT, total INT);
INSERT INTO online_orders VALUES ('Asha',100), ('Ben',200), ('Asha',100);
INSERT INTO store_orders VALUES ('Asha',100), ('Dev',300);
Lihat perbedaannya
SELECT customer, total FROM online_orders
UNION
SELECT customer, total FROM store_orders;
-- Asha | 100
-- Ben | 200
-- Dev | 300
SELECT customer, total FROM online_orders
UNION ALL
SELECT customer, total FROM store_orders;
-- Asha | 100
-- Ben | 200
-- Asha | 100
-- Asha | 100
-- Dev | 300
Lima baris masukan menjadi tiga dengan UNION, dan kelimanya tetap dengan UNION ALL. Dua hal yang perlu diperhatikan:
UNIONmenghapus duplikat dari seluruh hasil, termasuk yang ada dalam tabel pertama. Ini tidak hanya membandingkan antar tabel.- Sebuah baris dihitung sebagai duplikat hanya jika setiap kolom yang dipilih cocok.
Jika Anda benar-benar menginginkan daftar yang berbeda, UNION adalah pilihan yang tepat. Hal ini memberikan setiap pelanggan yang membeli melalui salah satu saluran:
SELECT customer FROM online_orders
UNION
SELECT customer FROM store_orders;
-- Asha
-- Ben
-- Dev
Bug yang salah total
Inilah alasan mengapa pilihan sangat penting. Misalkan Anda menginginkan pendapatan total. Pesanan di atas berjumlah 800. Lihat apa yang diberikan masing-masing operator:
SELECT SUM(total) FROM (
SELECT total FROM online_orders
UNION
SELECT total FROM store_orders
);
-- 600
SELECT SUM(total) FROM (
SELECT total FROM online_orders
UNION ALL
SELECT total FROM store_orders
);
-- 800
Versi UNION salah sebesar 200. Karena kami hanya memilih kolom total, tiga pesanan terpisah senilai 100 rupee tampak seperti duplikat dan diciutkan menjadi satu. Tidak ada pesan kesalahan, dan 600 tampak seperti angka yang dapat dipercaya. Jenis bug yang tenang ini dapat muncul dalam laporan keuangan selama berbulan-bulan.
Kiat: Dua baris yang tampak identik mungkin merupakan dua peristiwa asli. Sebelum Anda menggunakan UNION, tanyakan apakah baris identik berarti fakta yang sama yang dicatat dua kali, atau dua fakta berbeda. Untuk penjualan, pembayaran, dan entri log, biasanya yang kedua.
Aturan yang harus dipatuhi keduanya
Kedua operator memiliki persyaratan yang sama:
- Setiap
SELECTharus mengembalikan jumlah kolom yang sama. - Kolom dicocokkan berdasarkan posisi, bukan berdasarkan nama, jadi jaga agar urutannya tetap sama.
- Tipe data di setiap posisi harus kompatibel.
- Nama kolom hasil berasal dari pertama
SELECT. ORDER BYberada di bagian paling akhir, dan berlaku untuk keseluruhan hasil.
Melanggar aturan pertama menghasilkan kesalahan. Ini pesan dari SQLite:
SELECT customer, total FROM online_orders
UNION
SELECT customer FROM store_orders;
-- SELECTs to the left and right of UNION do not have
-- the same number of result columns
Aturan kedua lebih berbahaya karena bisa gagal tanpa kesalahan. Jika Anda menukar dua kolom dengan tipe yang sama, seperti first_name dan last_name, kueri berjalan dan data yang dihasilkan salah. SQLite juga santai dalam hal tipe, sedangkan database seperti PostgreSQL lebih ketat dan mungkin memerlukan eksplisit CAST.
Beri label pada sumbernya
Trik yang sangat praktis adalah dengan menambahkan kolom konstan yang menunjukkan dari mana setiap baris berasal. Karena labelnya berbeda, baris dari tabel yang berbeda tidak lagi dapat dianggap sebagai duplikat satu sama lain.
SELECT customer, total, 'online' AS channel FROM online_orders
UNION ALL
SELECT customer, total, 'store' FROM store_orders
ORDER BY customer, channel;
-- Asha | 100 | online
-- Asha | 100 | online
-- Asha | 100 | store
-- Ben | 200 | online
-- Dev | 300 | store
Setelah data Anda memiliki label, Anda dapat mengelompokkannya untuk melaporkan penjualan berdasarkan saluran, menggunakan GROUP BY. Jika Anda perlu menggabungkan beberapa langkah, gabungkan gabungan dalam CTE agar tetap dapat dibaca.
Performa: apa yang terjadi dalam pengujian kami
Untuk menghapus duplikat, database harus membandingkan baris, biasanya dengan mengurutkan atau melakukan hashing. UNION ALL dapat melewati langkah ini. Kami membuat dua tabel dengan masing-masing 500.000 baris, berisi angka acak dari 0 hingga 50.000, jadi ada banyak duplikat. Kami menjalankan setiap kueri beberapa kali dan mencatat waktu terbaik.
Pertama, kami menghitung hasilnya, sehingga waktu yang dihabiskan untuk mengirim baris kembali ke program kami tidak mempengaruhi perbandingan:
| Kueri, dibungkus dengan COUNT(*) | Baris | Waktu terbaik |
|---|---|---|
| PERSATUAN | 50,001 | 261 ms |
| PERSATUAN SEMUA | 1,000,000 | Di bawah 1 mdtk |
Kesenjangan yang besar ini sebagian karena SQLite dapat menghitung jumlah tersebut tanpa membaca setiap baris, jadi mohon jangan membacanya karena “ribuan kali lebih cepat”. Namun hal ini menunjukkan gagasan intinya: UNION harus melakukan pekerjaan nyata dan UNION ALL tidak.
Lalu kami mengambil semua baris ke dalam Python, dan hasilnya terbalik:
| Kueri, mengambil semua baris | Baris kembali | Waktu terbaik |
|---|---|---|
| PERSATUAN | 50,001 | 277 ms |
| PERSATUAN SEMUA | 1,000,000 | 392 ms |
Di sini, UNION ALL membutuhkan waktu lebih lama karena mengirimkan baris dua puluh kali lebih banyak. Bukan deduplikasi yang memperlambatnya. Menangani satu juta baris adalah. Jadi aturan jujurnya adalah UNION ALL lebih murah untuk dihitung oleh database, tetapi ukuran hasilnya juga penting. Banyak grafik online mengurangi ini menjadi “UNION ALL selalu lebih cepat”, dan pengujian kami menunjukkan mengapa hal ini tidak sesederhana itu.
Jangan memilih berdasarkan kecepatan saja. Pilih operator yang memberikan jawaban benar terlebih dahulu, lalu tune. Jika kueri lambat, baca panduan kami tentang optimasi kueri SQL.
Kapan menggunakan masing-masing
Gunakan UNION ALL ketika:
- Anda menggabungkan data dari tabel serupa, seperti partisi bulanan.
- Anda akan menghitung total atau hitungan setelahnya.
- Anda tahu masukannya tidak boleh tumpang tindih.
- Duplikat mempunyai arti, seperti dalam log atau catatan audit.
Gunakan UNION ketika:
- Anda memerlukan daftar unik, seperti setiap alamat email di dua sistem.
- Sumber yang tumpang tindih memuat fakta yang sama lebih dari satu kali.
Perlakukan UNION ALL sebagai default, dan gunakan UNION dengan sengaja. Menambahkan klausa WHERE ke setiap cabang, untuk memfilter lebih awal, membantu keduanya.
BERSINTANG dan KECUALI
Dua operator himpunan terkait menjawab pertanyaan berbeda. Keduanya mengikuti aturan kolom yang sama:
SELECT customer FROM online_orders
INTERSECT
SELECT customer FROM store_orders;
-- Asha (bought in both channels)
SELECT customer FROM online_orders
EXCEPT
SELECT customer FROM store_orders;
-- Ben (online only)
Oracle secara tradisional menggunakan MINUS daripada EXCEPT, dan dukungan untuk operator ini sedikit berbeda menurut database dan versi.
UNION vs GABUNG
Ini sering membingungkan, namun menggabungkan data dalam arah yang berbeda:
| Operasi | Arah | Hasil |
|---|---|---|
| PERSATUAN | Vertikal | Menambahkan lebih banyak baris |
| BERGABUNG | Horisontal | Menambahkan lebih banyak kolom |
Kesalahan umum
- Menggunakan UNION karena kebiasaan. Hal ini dapat menyebabkan Anda kehilangan kecepatan, atau menghapus baris yang valid.
- Memilih terlalu sedikit kolom. Mengabaikan ID membuat baris yang berbeda terlihat identik.
- Urutan kolom tidak cocok. Nilai dapat dimasukkan ke kolom yang salah tanpa kesalahan apa pun.
- Menambahkan ORDER BY ke setiap cabang. Urutkan sekali, di akhir.
- Menggunakan UNION untuk menambal gabungan yang buruk. Jika duplikat muncul karena gabungan, perbaiki gabungan tersebut.
- Dengan asumsi urutan hasil. Tanpa
ORDER BY, urutan baris tidak dijamin untuk salah satu operator.
Penutup
Ajukan satu pertanyaan setiap kali: apakah baris yang identik merupakan fakta yang sama, atau fakta yang terpisah? Jika keduanya terpisah, atau jika tumpang tindih tidak mungkin dilakukan, gunakan UNION ALL. Jika Anda memerlukan daftar unik, gunakan UNION. Untuk memeriksa laporan Anda sendiri, cari kode Anda untuk UNION di dekat SUM atau COUNT, dan konfirmasikan bahwa totalnya benar.
Pertanyaan yang sering diajukan
Apa perbedaan antara UNION dan UNION SEMUA?
UNION menggabungkan dua kumpulan hasil dan menghapus baris duplikat. UNION ALL menggabungkannya dan menyimpan setiap baris, termasuk duplikat.
Mana yang lebih cepat, UNION atau UNION ALL?
UNION ALL biasanya lebih murah untuk dihitung, karena tidak memeriksa duplikat. Mengembalikan hasil yang jauh lebih besar masih membutuhkan waktu lebih lama secara keseluruhan, seperti yang ditunjukkan oleh pengujian kami.
Apakah UNION menghapus duplikat dalam satu tabel?
Ya. Ini menghapus duplikat di seluruh hasil gabungan, termasuk baris identik yang semuanya berasal dari tabel yang sama.
Apakah nama kolom harus cocok di UNION?
Tidak. Kolom dicocokkan berdasarkan posisi, dan hasilnya menggunakan nama dari SELECT pertama. Jumlah kolom harus cocok, dan tipenya harus kompatibel.
Bisakah saya menggunakan ORDER BY dengan UNION?
Ya, tapi tempatkan satu ORDER BY di akhir pernyataan. Ini mengurutkan seluruh hasil gabungan, bukan satu cabang.
Teruslah belajar
Butuh bantuan dengan pengujian, WordPress atau SEO?
Kami membantu tim mengirimkan perangkat lunak yang lebih baik dan mengembangkan situs mereka. Beritahu kami apa yang sedang Anda kerjakan dan kami akan menyarankan langkah selanjutnya yang jelas.
Panduan lebih lanjut tentang pengujian, AI & pengembangan modern
Menikmati artikel ini? Pilih topik dan langsung masuk ke tutorial terbaru kami.
Penjelasan Halusinasi AI: Mengapa Model Bahasa Memperbaiki Masalah dan Cara Menguranginya
Halusinasi AI menjelaskan: apa itu, mengapa model bahasa memproduksinya, tipe umum, cara menguranginya dengan landasan dan petunjuk, dan pemeriksaan…
Baca artikel →DevOpsPenjelasan Variabel Lingkungan: File .env, Rahasia, dan Konfigurasi Dilakukan dengan Benar
Variabel lingkungan dijelaskan dengan contoh Python yang kami jalankan: membaca dan mengaturnya, mengapa setiap nilai berupa string, file .env, pewa…
Baca artikel →Pengembangan perangkat lunakPenjelasan Pembatasan Kecepatan API: Algoritma, Header, dan Penanganan 429 Kesalahan
Pembatasan laju API dijelaskan dengan simulasi yang kami jalankan: keranjang token, jendela tetap, jendela geser, respons 429, header batas laju, pe…
Baca artikel →Otomatisasi pengujianMengejek dengan Python: unittest.mock, patch dan Kesalahan yang Membuat Tes Berbohong
Mengejek dengan Python dengan unittest.mock, menguji: Mock dan return_value, side_effect, menambal di mana nama digunakan, spesifikasi dan autospec,…
Baca artikel →Pengujian perangkat lunakPenjelasan Cakupan Kode: Cakupan Jalur vs Cabang dan Apa Arti 100% Sebenarnya
Cakupan kode dijelaskan dengan coverage.py yang sebenarnya dijalankan: cakupan garis, cabang dan kondisi, membaca laporan, mengapa cakupan 100% masi…
Baca artikel →Basis data & SQLDELETE vs TRUNCATE vs DROP dalam SQL: Perbedaan, Rollback dan Kapan Menggunakan Masing-Masing
DELETE vs TRUNCATE vs DROP dijelaskan dengan SQL yang diuji: apa yang dihapus, rollback, pemicu, reset identitas, kecepatan, dan perbedaan PostgreSQ…
Baca artikel →Basis data & SQLPenjelasan Tampilan SQL: Membuat, Menggunakan, dan Menghindari Kesalahan, Dengan Contoh
Tampilan SQL dijelaskan dengan kueri yang kami jalankan: membuat tampilan, hasil langsung, menyembunyikan kolom, kinerja, tampilan yang dapat diperb…
Baca artikel →Pengembangan perangkat lunakAntarmuka TypeScript vs Tipe: Perbedaan Nyata, Diuji Dengan Kompiler
Antarmuka TypeScript vs tipe, diperiksa dengan kompiler sebenarnya: apa yang bisa dilakukan keduanya, apa yang hanya bisa dilakukan satu orang, peng…
Baca artikel →Pengembangan perangkat lunakPenjelasan Python *args dan **kwargs: Fungsi Fleksibel Dengan Contoh Jelas
Python *args dan **kwargs dijelaskan dengan kode yang kami jalankan: pengepakan dan pembongkaran, urutan parameter, argumen hanya kata kunci dan pos…
Baca artikel →Pengembangan perangkat lunakFungsi Python Lambda: Sintaks, Kegunaan Sebenarnya, dan Kapan Tidak Digunakan
Fungsi python lambda dijelaskan dengan kode yang kami jalankan: sintaksis, pengurutan dengan kunci, peta dan filter, penutupan, jebakan pengikatan a…
Baca artikel →Kecerdasan buatanApa Itu Agen AI? Cara Kerjanya, Dengan Agent Loop Sederhana yang Dapat Anda Jalankan
Apa itu agen AI? Panduan sederhana tentang loop agen, alat, memori, dan pagar pembatas, dengan loop Python kecil yang kami jalankan, risiko nyata da…
Baca artikel →DevOpsPemantauan vs Observabilitas: Perbedaan Nyata, Dengan Log, Metrik, dan Jejak
Penjelasan pemantauan vs observabilitas: kegagalan yang diketahui dan tidak diketahui, log, metrik dan jejak, penelusuran insiden checkout, sinyal e…
Baca artikel →DevOpsVolume Docker vs Bind Mounts: Pertahankan Data Kontainer dengan Cara yang Benar
Volume Docker vs pengikatan pengikat dijelaskan: mengapa data kontainer menghilang, volume yang diberi nama, pengikatan pengikatan, tmpfs, contoh Tu…
Baca artikel →Otomatisasi pengujianTDD vs BDD: Perbedaan Utama, Satu Fitur Dibangun dengan Dua Cara dan Kapan Menggunakan Masing-masing
TDD vs BDD dijelaskan dengan satu fitur diskon yang dibuat dengan dua cara: refactor merah-hijau dengan kode yang kami jalankan, skenario Mengingat-…
Baca artikel →Pengujian perangkat lunakUser Acceptance Testing (UAT): Proses, Checklist dan Contoh Nyata
Pengujian penerimaan pengguna menjelaskan: siapa yang menjalankannya, perbedaannya dengan QA, proses tujuh langkah, templat kasus uji UAT, daftar pe…
Baca artikel →Basis data & SQLPenjelasan Nilai NULL SQL: IS NULL, COALESCE, NULLIF dan Jebakan yang Harus Dihindari
Nilai SQL NULL dijelaskan dengan kueri yang kami jalankan: logika tiga nilai, IS NULL, COALESCE, NULLIF, cara agregat, penggabungan, dan pengurutan …
Baca artikel →Basis data & SQLPernyataan SQL CASE WHEN: Sintaks, Contoh Nyata dan Kesalahan Umum
SQL CASE KETIKA dijelaskan dengan kueri yang kami jalankan: formulir sederhana dan dicari, urutan kondisi, pivot dengan SUM, trik COUNT, pengurutan …
Baca artikel →Pengembangan perangkat lunakApa itu JWT? Token Web JSON Dijelaskan Dengan Contoh Kerja
Apa itu JWT? JSON Web Tokens menjelaskan: tiga bagian, token yang dibuat dan dirusak dalam kode yang kami jalankan, sesi JWT vs, penyimpanan, token …
Baca artikel →Pengembangan perangkat lunakPenjelasan Loop Acara JavaScript: Call Stack, Microtasks, dan Timer Dengan Contoh
Perulangan peristiwa JavaScript dijelaskan dengan kode yang kami jalankan: tumpukan panggilan, antrian tugas dan tugas mikro, mengapa setTimeout 0 t…
Baca artikel →Pengembangan perangkat lunakGenerator Python dan Penjelasan Hasil: Menghemat Memori Dengan Contoh Nyata
Generator dan hasil Python dijelaskan dengan kode yang kami jalankan: bagaimana mereka menjeda dan melanjutkan, mengukur penghematan memori, saluran…
Baca artikel →Kecerdasan buatanApa itu Embedding? Kesamaan Vektor dan Kosinus Dijelaskan Secara Sederhana
Apa itu embeddings? Panduan bahasa sederhana tentang vektor, kesamaan kosinus, dan penelusuran semantik, dengan contoh kecil yang kami jalankan, pen…
Baca artikel →DevOpsPenerapan Biru-Hijau vs Canary: Perbedaan, Kompromi, dan Cara Memilih
Penjelasan penerapan blue-green vs canary: cara kerja masing-masing, biaya, risiko dan rollback, pengelompokan pengguna stabil yang kami uji, migras…
Baca artikel →Otomatisasi pengujianTes Tidak Stabil: Apa Penyebabnya dan Cara Memperbaikinya untuk Kebaikan
Pengujian yang tidak stabil dijelaskan dengan demo yang kami jalankan: penyebab utama, cara mengonfirmasi dan mendiagnosisnya, perbaikan waktu yang …
Baca artikel →Pengujian perangkat lunakLoad Testing vs Stress Testing: Perbedaan, Metrik dan Contoh k6
Penjelasan pengujian beban vs pengujian stres: apa yang dibuktikan masing-masing, pengujian lonjakan dan rendam, metrik yang penting, mengapa rata-r…
Baca artikel →Pengujian perangkat lunakKasus Uji vs Skenario Uji: Perbedaan Utama, Contoh, dan Kapan Menggunakan Masing-masing
Penjelasan kasus uji vs skenario pengujian: definisi yang jelas, tabel berdampingan, satu fitur pengaturan ulang kata sandi yang diambil dari skenar…
Baca artikel →Basis data & SQLOptimasi Kueri SQL: Baca Rencana Eksekusi dan Perbaiki Kueri Lambat, Dengan Pengaturan Waktu
Pengoptimalan kueri SQL diuji pada sejuta baris: membaca rencana eksekusi, menambahkan indeks yang tepat, memperbaiki filter yang tidak dapat disarg…
Baca artikel →Basis data & SQLSQL UNION vs UNION ALL: Perbedaan, Contoh dan Kinerja Diuji
SQL UNION vs UNION ALL dijelaskan dengan kueri yang kami jalankan: duplikat, aturan yang diikuti keduanya, bug data nyata, kinerja terukur, INTERSEC…
Baca artikel →Pengembangan perangkat lunakTutorial API Pengambilan JavaScript: GET, POST, Penanganan Kesalahan, dan Batas Waktu
Tutorial JavaScript Fetch API diuji pada server lokal: GET dan POST, mengapa 404 tidak muncul, bantuan yang dapat digunakan kembali, string kueri, b…
Baca artikel →Pengembangan perangkat lunakPenanganan File Python: Baca, Tulis, CSV, JSON dan pathlib Dengan Contoh
Penanganan file Python dijelaskan dengan kode yang kami jalankan: mode terbuka, dengan, membaca file besar, CSV, JSON, pathlib, file biner, penulisa…
Baca artikel →Pengembangan perangkat lunakKelas dan Objek Python: Tutorial OOP Dengan Contoh Nyata
Kelas dan objek Python dijelaskan dengan kode yang kami jalankan: __init__, metode, atribut kelas vs instance, warisan, properti, metode dunder, kel…
Baca artikel →Kecerdasan buatanApa Itu Model Bahasa Besar? Bagaimana LLM Bekerja, Dijelaskan Tanpa Hype
Apa yang dimaksud dengan model bahasa besar? LLM dijelaskan dalam bahasa sederhana: token, penyematan, perhatian, pelatihan, jendela suhu dan kontek…
Baca artikel →DevOpsPerintah Linux untuk Pemula: Panduan Terminal Penting Dengan Contoh
Perintah Linux untuk pemula, dikelompokkan berdasarkan tugas: navigasi, file, melihat log, grep, pipa, izin, proses dan arsip, dengan contoh analisi…
Baca artikel →Otomatisasi pengujianSelenium vs Penulis Drama: Perbedaan Utama, Perbandingan Kode, dan Mana yang Harus Dipilih
Selenium vs Playwright dibandingkan: arsitektur, menunggu, dukungan browser dan bahasa, debugging, pengujian yang sama di kedua alat, saran migrasi …
Baca artikel →Pengujian perangkat lunakPartisi Ekivalensi: Teknik Desain Tes Dijelaskan Dengan Contoh yang Dikerjakan
Penjelasan partisi ekivalensi: cara menemukan partisi yang valid dan tidak valid, contoh yang berfungsi untuk usia, kata sandi dan kupon, pengujian …
Baca artikel →Pengujian perangkat lunakSeverity vs Priority dalam Pengujian Perangkat Lunak: Perbedaan, Matriks dan Contoh Nyata
Keparahan vs prioritas dalam pengujian perangkat lunak dijelaskan: definisi yang jelas, matriks empat arah dengan contoh, skala level, siapa yang me…
Baca artikel →Basis data & SQLTutorial Subkueri SQL: Jenis, Subkueri yang Berkorelasi, dan ADA Dengan Contoh
Tutorial subkueri SQL dengan kueri yang kami jalankan: subkueri skalar, IN, FROM dan SELECT, subkueri yang berkorelasi, EXISTS, jebakan NOT IN NULL …
Baca artikel →Basis data & SQLPenjelasan Transaksi SQL dan ACID: COMMIT, ROLLBACK dan Tingkat Isolasi
Transaksi SQL dan ACID dijelaskan dengan transfer bank yang kami jalankan: COMMIT, ROLLBACK, savepoint, kunci, tingkat isolasi, pembacaan kotor, keb…
Baca artikel →Pengembangan perangkat lunakGit merge vs rebase: perbedaan, contoh, dan kapan memakai masing-masing
Git merge vs rebase dijelaskan dengan keluaran log nyata, tabel perbandingan, aturan emas rebase, dan alur kerja tim yang aman.
Baca artikel →Pengembangan perangkat lunakList Comprehension Python: Sintaks, Contoh, dan Kapan Harus Dihindari
List comprehension Python dijelaskan: sintaks, filter, if-else, perulangan bersarang, waktu yang diukur, dan kapan perulangan for biasa lebih baik.
Baca artikel →Basis data & SQLPenjelasan SQL JOIN dengan Contoh (Inner, Left, Right, Full)
Pahami SQL JOIN langkah demi langkah dengan tabel dan query contoh: INNER, LEFT, RIGHT, FULL, CROSS, dan SELF, plus kesalahan umum dan tips performa.
Baca artikel →