Soal 1Mana yang menggambarkan peran SET dan WHERE di pernyataan UPDATE dengan benar?
UPDATE dan DELETE — Memperbarui dan Menghapus Baris
Pelajari SQL UPDATE dan DELETE dari dasar. Mencakup pembaruan banyak kolom dengan SET, penghapusan terbatas dengan WHERE, dan apa yang terjadi kalau kamu lupa WHERE — semuanya berjalan langsung di browser kamu.
UPDATE — menulis ulang baris yang sudah ada
INSERT untuk "menambahkan baris baru." UPDATE adalah operasi untuk menulis ulang nilai baris yang sudah ada. Mengubah status anggota, merevisi harga produk, memperbarui jumlah pembelian — UPDATE adalah bagian dari operasi sehari-hari di setiap aplikasi produksi.
Bentuk dasarnya adalah UPDATE nama_tabel SET col = val WHERE kondisi;. SET mengatakan "kolom mana mendapat nilai apa," dan WHERE mengatakan "baris mana yang terpengaruh."
-- Tulis ulang status customer di mana id = 1 menjadi 'active'
UPDATE customer SET status = 'active' WHERE id = 1;
-- Periksa hasilnya
SELECT * FROM customer;
UPDATE nama_tabel adalah tabel target, SET col = val adalah perubahannya, dan WHERE kondisi mempersempit baris mana. Rasakan posisi dan peran masing-masing.Lupa WHERE memperbarui setiap baris
Hilangkan WHERE dari UPDATE customer SET status = 'active' WHERE id = 1; (menjadi UPDATE customer SET status = 'active';) dan setiap baris dari customer akan di-rewrite status-nya menjadi 'active'. Tidak ada error, dan justru itu yang membuatnya jadi cara mudah merusak data produksi diam-diam.
Memperbarui banyak kolom sekaligus
Dengan mendaftar pasangan `col = val` dipisah koma di klausa SET, kamu bisa memperbarui banyak kolom sekaligus: SET col1 = val1, col2 = val2, ....
Sisi kanan juga bisa berupa ekspresi yang melibatkan kolom itu sendiri. SET price = price + 100 artinya "tulis ulang price baris target menjadi price-nya saat ini ditambah 100."
col = val atau beberapa yang dipisah koma, dan sisi kanan juga bisa berupa ekspresi.-- Update banyak kolom ke nilai absolut sekaligus
UPDATE inventory SET price = 200, stock = 100 WHERE id = 2;
-- Update dengan ekspresi (merujuk nilai yang sudah ada)
UPDATE inventory SET price = price + 100, stock = stock - 10 WHERE id = 2;
DELETE — menghapus baris
DELETE adalah operasi untuk menghapus baris dari tabel. Bentuk dasarnya adalah DELETE FROM nama_tabel WHERE kondisi;, dengan WHERE mempersempit baris target. Tidak seperti SELECT, tidak ada daftar kolom (SELECT col1, col2) — DELETE menghapus seluruh baris.
Definisi tabel (struktur kolom) tetap ada, jadi kamu bisa INSERT ke tabel yang sama setelah menghapus. Untuk menghapus tabelnya sendiri, pakai DROP TABLE / TRUNCATE (dibahas di artikel berikutnya).
DELETE FROM nama_tabel adalah tabel target; WHERE kondisi memutuskan baris mana yang dihapus. Tidak ada padanan daftar kolom SELECT atau klausa SET UPDATE di DELETE.-- Hapus semua langganan kedaluwarsa (status = 'expired')
DELETE FROM subscription WHERE status = 'expired';
-- Periksa hasilnya (hanya baris yang bertahan yang tetap)
SELECT * FROM subscription;
Hati-hati dengan WHERE yang hilang — jebakan update/delete semua baris
Lupa WHERE adalah kecelakaan paling umum dengan UPDATE dan DELETE. Tanpa WHERE, sintaksnya tetap legal — dan target meluas ke setiap baris di tabel. UPDATE tabel SET col = val; menulis ulang setiap baris ke nilai yang sama; DELETE FROM tabel; mengosongkan tabel.
Walau kamu langsung menyadarinya, kamu tidak bisa membatalkan setelah perubahan di-commit. Aturan operasional dasar di produksi adalah selalu menjalankan WHERE yang sama sebagai `SELECT` dulu untuk memastikan baris target secara visual sebelum menulis ulang.
Di produksi, pastikan baris target dengan SELECT lebih dulu
Untuk UPDATE / DELETE di database produksi, jalankan WHERE yang sama sebagai SELECT lebih dulu dan pastikan baris target sesuai harapan secara visual sebelum menukarnya menjadi operasi rewrite. Prosedur dua langkahnya:
1. Jalankan SELECT * FROM nama_tabel WHERE kondisi; untuk memastikan baris target (apakah jumlah baris dan nilainya sesuai harapan?)
2. Kalau semuanya terlihat benar, ganti WHERE yang sama menjadi UPDATE nama_tabel SET col = val WHERE kondisi; atau DELETE FROM nama_tabel WHERE kondisi; dan jalankan
Karena klausa WHERE dipakai ulang lewat copy-paste, ini juga mengurangi jenis kecelakaan di mana WHERE-nya tidak sengaja terhapus saat penulisan ulang.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Mana cara yang benar untuk memperbarui baik name maupun email untuk baris di customer di mana id = 1 secara bersamaan?
Soal 3Apa yang terjadi saat kamu menjalankan DELETE FROM product; tanpa WHERE?