script update mysql | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: script update mysql

Tuesday, April 7, 2026

script update mysql

Beranda Tutorial MySQL Artikel 16

Memperbarui Data:
Perintah UPDATE dan SET

🟡 Level Menengah 🗄️ MySQL / SQL ⏱️ 8 Menit Baca 📘 Seri 16 dari 28
7
Perintah SQL
10+
Contoh Query
8
Menit Baca

Bayangkan kamu punya buku catatan harga produk di toko online-mu, dan tiba-tiba ada diskon besar-besaran. Masa kamu harus hapus semua data lama terus isi ulang dari awal? Tentu tidak! Di sinilah keajaiban UPDATE SET MySQL bekerja — perintah yang memungkinkan kamu mengubah data yang sudah ada tanpa perlu menghapus dan mengisi ulang satu per satu.

Selamat datang di Artikel ke-16 dari 28 Seri Belajar Query SQL MySQL! Di sini kita akan bahas tuntas cara pakai perintah UPDATE dan SET — dua sahabat karib yang jadi andalan setiap developer database.

Di artikel ini kamu akan belajar: sintaks dasar UPDATE SET, cara update satu atau banyak kolom sekaligus, update dengan kondisi WHERE, teknik update banyak baris, dan jebakan-jebakan berbahaya yang wajib dihindari. Studi kasus menggunakan database toko online — produk, pelanggan, dan pesanan — supaya lebih relate dengan dunia nyata. Langsung gas!

Fakta Menarik tentang Perintah UPDATE!

Menurut survei Stack Overflow Developer Survey, operasi UPDATE adalah salah satu dari 3 perintah SQL yang paling sering digunakan dalam aplikasi produksi. Di platform e-commerce besar, ribuan query UPDATE dieksekusi setiap detik — mulai dari update stok produk, status pesanan, hingga poin reward pelanggan. Bayangkan: satu bug pada perintah UPDATE tanpa WHERE bisa mengubah seluruh data dalam tabel sekaligus!

1. Mengenal Sintaks Dasar UPDATE SET MySQL

Kalau INSERT itu seperti menulis entri baru di buku catatan, maka UPDATE SET MySQL adalah seperti menghapus tulisan dengan penghapus dan menulis ulang di tempat yang sama. Data lamanya pergi, digantikan data baru — tapi baris-nya tetap ada di tempat yang sama.

📋 Sintaks Lengkap UPDATE SET

UPDATE nama_tabel
SET    kolom1 = nilai_baru1,  -- kolom yang ingin diubah
       kolom2 = nilai_baru2,  -- bisa update banyak kolom sekaligus
       kolom3 = nilai_baru3
WHERE  kondisi;               -- ⚠️ WAJIB! tanpa ini semua baris berubah!

Mari langsung praktik. Misalkan kita punya tabel produk di toko online kita seperti ini:

id_produk nama_produk harga stok kategori
1 Sepatu Lari Nike 850000 50 Olahraga
2 Kaos Polos Hitam 120000 200 Fashion
3 Laptop Asus VivoBook 7500000 15 Elektronik
4 Tas Ransel Canvas 275000 80 Aksesoris

Sekarang kita mau update harga Sepatu Lari Nike dari 850.000 menjadi 799.000 (lagi diskon!):

UPDATE produk
SET    harga = 799000
WHERE  id_produk = 1;

Output MySQL: Query OK, 1 row affected

💡 Tip Praktis

Sebelum eksekusi UPDATE, coba jalankan dulu query SELECT * FROM produk WHERE id_produk = 1 untuk memastikan kamu menyasar baris yang tepat. Ini kebiasaan developer pro yang sering diabaikan pemula!

2. UPDATE SET MySQL untuk Banyak Kolom Sekaligus

Analoginya begini: kalau kamu mau renovasi kamar, lebih efisien ganti cat tembok, ganti karpet, DAN ganti lampu sekaligus dalam satu hari kerja — bukan tiga hari kerja terpisah. Begitu juga di MySQL, kamu bisa update beberapa kolom sekaligus dalam satu perintah UPDATE SET dengan memisahkan setiap pasangan kolom-nilai menggunakan tanda koma.

📝 Update Harga + Stok Laptop Sekaligus

UPDATE produk
SET    harga    = 6999000,   -- turunkan harga
       stok     = 20,        -- tambah stok
       kategori = 'Komputer' -- ubah kategori
WHERE  id_produk = 3;

Hasil setelah query dieksekusi:

id_produk nama_produk harga stok kategori
3 Laptop Asus VivoBook 6999000 ✓ 20 ✓ Komputer ✓

Bonus keren: di kolom SET, kamu bisa pakai ekspresi matematika! Misalnya, kamu mau kurangi stok Kaos Polos saat ada order masuk:

-- Kurangi stok 5 unit saat ada pesanan
UPDATE produk
SET    stok = stok - 5  -- nilai lama dikurangi 5
WHERE  id_produk = 2;

-- Naikkan harga semua produk Fashion 10%
UPDATE produk
SET    harga = harga * 1.10
WHERE  kategori = 'Fashion';

⚠️ Peringatan Penting!

Saat update menggunakan ekspresi seperti stok = stok - 5, pastikan nilai stok tidak akan menjadi negatif! Tambahkan kondisi AND stok >= 5 di klausa WHERE untuk mencegah stok minus.

3. UPDATE SET dengan Kondisi WHERE yang Lebih Kompleks

Klausa WHERE di perintah UPDATE SET MySQL bisa sekompleks kondisi pada query SELECT — bisa pakai AND, OR, IN, BETWEEN, bahkan subquery! Anggap aja WHERE itu seperti filter di aplikasi e-commerce — kamu bisa makin spesifik milih produk yang mau diubah.

Beberapa contoh kondisi WHERE yang sering dipakai di kasus toko online:

-- 1. Update status pesanan dengan IN
UPDATE pesanan
SET    status = 'Dikirim'
WHERE  id_pesanan IN (101, 102, 105, 110);

-- 2. Update poin pelanggan yang belanja bulan ini
UPDATE pelanggan
SET    poin = poin + 100
WHERE  tanggal_daftar BETWEEN '2024-01-01' AND '2024-01-31';

-- 3. Update stok yang hampir habis (< 10) dan mahal (> 1jt)
UPDATE produk
SET    stok = stok + 50
WHERE  stok < 10
  AND  harga > 1000000;

-- 4. Update menggunakan LIKE untuk nama produk tertentu
UPDATE produk
SET    kategori = 'Sport & Lifestyle'
WHERE  nama_produk LIKE '%Nike%'
   OR  nama_produk LIKE '%Adidas%';

Contoh: Update status pesanan tabel pesanan:

id_pesanan id_pelanggan total status (sebelum) status (sesudah)
101 C001 850.000 Diproses Dikirim ✓
102 C003 120.000 Diproses Dikirim ✓
103 C002 275.000 Pending Pending (tidak berubah)

💡 Tip Praktis — Safe Update Mode

MySQL punya fitur safe update mode. Kalau kamu dapat error "Error Code: 1175", itu tandanya MySQL memproteksi kamu dari UPDATE tanpa primary key di WHERE. Bisa dinonaktifkan sementara dengan: SET SQL_SAFE_UPDATES = 0; — tapi gunakan dengan bijak ya!

4. Jebakan Berbahaya: UPDATE Tanpa WHERE dan Cara Mitigasinya

Ini bagian yang wajib dihapal sampai mimpi. Coba bayangkan kamu bekerja di tim dev startup, jam 11 malam, lagi buru-buru deploy hotfix — terus tanpa sadar kamu eksekusi:

🚨 QUERY MEMATIKAN — JANGAN DIJALANKAN DI PRODUCTION!

UPDATE produk
SET    harga = 0;
-- ☠️ Tanpa WHERE = SEMUA produk harganya jadi 0!
-- Toko online kamu barusan rugi miliaran rupiah.

Untuk mencegah skenario horor itu, ada beberapa strategi yang bisa kamu terapkan:

-- STRATEGI 1: Selalu gunakan transaction
START TRANSACTION;
  UPDATE produk SET harga = 0;  -- oh tidak!
ROLLBACK;  -- data kembali seperti semula, selamat!

-- STRATEGI 2: SELECT dulu sebelum UPDATE
-- Pastikan WHERE-mu sudah benar
SELECT * FROM produk WHERE kategori = 'Elektronik';
-- Baru setelah yakin, jalankan UPDATE
UPDATE produk
SET    harga = harga * 0.9
WHERE  kategori = 'Elektronik';

-- STRATEGI 3: Gunakan LIMIT untuk batasi jumlah baris
UPDATE produk
SET    stok = 0
WHERE  kategori = 'Elektronik'
LIMIT  1;  -- hanya 1 baris yang berubah, aman!

🔥 Insight dari Lapangan

Senior developer biasanya punya SOP ketat: setiap query UPDATE di production harus dibungkus dalam transaction, dan wajib ada peer review sebelum dieksekusi. Kebiasaan ini menghemat ribuan jam kerja perbaikan data yang corrupt. Mulai terapkan dari sekarang, meski untuk project kecil!

🛠️ Step-by-Step: Praktikum UPDATE di Toko Online

1

Buat tabel dan isi data awal

Siapkan tabel produk dengan beberapa baris data sample menggunakan INSERT.

CREATE TABLE produk (
  id_produk    INT PRIMARY KEY AUTO_INCREMENT,
  nama_produk  VARCHAR(100),
  harga        DECIMAL(12,2),
  stok         INT,
  kategori     VARCHAR(50)
);
2

Verifikasi data dengan SELECT sebelum UPDATE

Kebiasaan terpenting: lihat data dulu dengan SELECT menggunakan WHERE yang sama yang akan kamu pakai di UPDATE.

SELECT * FROM produk WHERE id_produk = 1;
3

Bungkus dalam Transaction

Mulai transaction, eksekusi UPDATE, verifikasi hasilnya — baru COMMIT jika sudah yakin.

START TRANSACTION;

UPDATE produk
SET    harga = 799000, stok = 45
WHERE  id_produk = 1;

-- Cek hasilnya dulu
SELECT * FROM produk WHERE id_produk = 1;

-- Kalau sudah benar, commit!
COMMIT;
4

Update banyak baris sekaligus dengan CASE WHEN

Untuk update dengan nilai berbeda di tiap baris tanpa looping, gunakan ekspresi CASE WHEN dalam SET.

-- Update diskon berbeda per kategori
UPDATE produk
SET harga = CASE
  WHEN kategori = 'Elektronik' THEN harga * 0.85
  WHEN kategori = 'Fashion'    THEN harga * 0.90
  WHEN kategori = 'Olahraga'  THEN harga * 0.95
  ELSE harga
END;

Verifikasi akhir dan dokumentasi

Jalankan SELECT akhir untuk memastikan semua perubahan sesuai harapan. Catat query yang berhasil untuk referensi tim. Kamu berhasil! 🎉

📊 Ringkasan: Variasi Perintah UPDATE SET MySQL

Jenis UPDATE Sintaks Kunci Use Case Risiko
Update 1 Kolom SET kolom = nilai Ubah satu field spesifik 🟢 Rendah
Update Banyak Kolom SET k1=v1, k2=v2 Update profil pelanggan 🟢 Rendah
Update dengan Ekspresi SET stok = stok - 1 Kurangi/tambah stok, poin 🟡 Menengah
Update Banyak Baris WHERE kategori = 'X' Flash sale per kategori 🟡 Menengah
Update dengan CASE SET k = CASE WHEN Diskon berbeda tiap kategori 🟡 Menengah
Update Tanpa WHERE UPDATE t SET k=v ⚠️ Hampir tidak pernah diperlukan 🔴 Sangat Tinggi!

💡 Tip #1: ROW_COUNT() untuk Audit

Setelah eksekusi UPDATE, panggil SELECT ROW_COUNT(); untuk tahu berapa baris yang benar-benar berubah. Kalau hasilnya 0 padahal kamu expect banyak baris — berarti ada yang salah di WHERE-mu!

🔥 Insight #2: UPDATE vs DELETE+INSERT

Pemula sering salah kaprah: hapus dulu lalu insert ulang. Itu 2x lebih lambat dan berbahaya (bisa kehilangan data jika INSERT gagal). Gunakan UPDATE — itu cara yang benar, lebih cepat, dan lebih aman karena bisa di-rollback.

🎯 Kesimpulan

  • UPDATE SET MySQL adalah perintah untuk memperbarui data yang sudah ada di tabel tanpa menghapus barisnya.
  • Klausa WHERE adalah WAJIB — tanpanya semua baris di tabel akan ikut berubah.
  • Bisa update banyak kolom sekaligus dengan memisahkan pasangan kolom-nilai menggunakan koma di klausa SET.
  • Gunakan ekspresi matematika di SET (seperti stok = stok - 1) untuk update dinamis.
  • CASE WHEN dalam SET memungkinkan update nilai berbeda untuk baris yang berbeda dalam satu query.
  • Selalu gunakan TRANSACTION + ROLLBACK sebagai safety net, dan SELECT dulu sebelum UPDATE di production.

"Setiap developer handal pernah panik karena UPDATE tanpa WHERE. Bedanya, developer yang baik belajar dari kepanikan itu — dan kamu sudah selangkah lebih maju karena tahu risikonya sebelum mengalaminya."

Artikel Berikutnya — #17 dari 28

Menghapus Data: Perintah DELETE dan TRUNCATE

Setelah bisa update, saatnya belajar cara hapus data dengan aman dan kapan harus pilih DELETE vs TRUNCATE.

Baca Selanjutnya →
#MySQL #SQL #Database #Query #Tutorial #UPDATE SET MySQL

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux