Lewati ke konten utama

Cara Memperbarui Beberapa Kolom di SQL

Pelajari cara memperbarui beberapa kolom di SQL menggunakan satu kueri untuk efisiensi yang lebih baik. Jelajahi teknik lanjutan dan contoh praktis, termasuk pembaruan satu baris dan pembaruan banyak baris.
· 8 mnt Baca

Jelajahi bersama AI

Saat bekerja dengan basis data, efisiensi adalah kunci, dan mengetahui cara memperbarui beberapa kolom sekaligus di SQL adalah keterampilan yang bagus. Sebagai analis data, memahami cara memperbarui beberapa kolom di SQL dapat meningkatkan produktivitas Anda dan mencegah kesalahan. Artikel ini akan membahas cara memperbarui beberapa kolom menggunakan SQL, mencakup sintaks, teknik, dan contoh untuk menunjukkan praktik terbaik.

Anda akan mempelajari cara memperbarui beberapa kolom dengan pernyataan UPDATE dan cara menangani join, kondisi, serta pertimbangan kinerja untuk mengelola data secara efektif. Seiring kita mulai, saya merekomendasikan kursus Introduction to SQL dan Learn SQL dari DataCamp untuk mempelajari dasar-dasar SQL dalam melakukan query ke basis data. 

Memahami Dasar-dasar Memperbarui Beberapa Kolom di SQL

Pernyataan UPDATE dalam SQL digunakan untuk memodifikasi data di dalam basis data. Fungsi utamanya adalah mengubah rekaman yang ada dengan memperbarui nilai pada satu atau lebih kolom dalam sebuah tabel. UPDATE efisien karena memungkinkan beberapa kolom diperbarui menggunakan satu pernyataan. Berikut adalah sintaks dari pernyataan UPDATE.

-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
    column2 = value2,
    column3 = value3
WHERE condition;
  • table_name: Tabel tempat Anda ingin memperbarui data.

  • column1, column2, column3: Kolom yang diperbarui.

  • value1, value2, value3: Nilai baru untuk kolom masing-masing.

  • condition: Kriteria yang menentukan baris mana yang diperbarui.

Menggunakan pernyataan UPDATE untuk memperbarui beberapa kolom itu efisien karena mesin basis data memproses operasi lebih cepat dan menggunakan lebih sedikit sumber daya. Metode ini juga sederhana karena kodenya mudah dipahami dan dipelihara.

Contoh Memperbarui Beberapa Kolom di SQL

Anda dapat memperbarui beberapa kolom di SQL untuk satu rekaman atau beberapa baris di dalam tabel. Mari kita lihat keduanya:

Pembaruan satu baris

Kita menggunakan pembaruan satu baris saat memodifikasi nilai beberapa kolom untuk satu rekaman tertentu. Metode ini lugas ketika mengubah nilai entri tabel tertentu.

Kueri berikut memperbarui kolom salary dan department pada tabel employees untuk satu baris di mana employee_id = 101.

-- Updating salary and department columns
UPDATE employees
SET salary = 75000,        
    department = 'HR' 
-- Condition to target the specific row
WHERE employee_id = 101;

Pembaruan banyak baris

Pembaruan batch diperlukan dalam skenario saat Anda harus memperbarui beberapa kolom di banyak rekaman. Pembaruan banyak baris terjadi saat memperbarui rekaman berdasarkan kondisi tertentu yang memengaruhi lebih dari satu baris.

Misalkan Anda ingin memperbarui salary dan position beberapa karyawan yang dipromosikan di departemen Sales. Anda dapat menggunakan kueri berikut:

-- Update multiple columns 
UPDATE employees
-- Increase the salary by $5000 for each 
SET salary = salary + 5000, 
    position = 'Senior Sales Associate' 
WHERE department = 'Sales' 
  AND years_of_experience > 5;

Teknik Lanjutan untuk Memperbarui Beberapa Kolom di SQL

Dalam beberapa kasus, memperbarui beberapa kolom di SQL memerlukan teknik yang lebih lanjut, terutama saat menangani nilai null, logika kondisional, atau pembaruan berdasarkan data dari tabel lain. 

Saat nilai sebuah kolom bergantung pada kolom lain

Kita mungkin ingin memperbarui sebuah kolom berdasarkan kolom lain dalam tabel yang sama. Di sini kita akan menggunakan logika dasar dengan ekspresi untuk memperbarui kolom.

Sebagai contoh, kueri berikut menghitung kolom bonus sebagai persentase dari kolom salary untuk karyawan tertentu.

-- Update bonus as 10% of the salary
UPDATE employees
SET bonus = salary * 0.10 
-- Only apply the update to Sales department
WHERE department = 'Sales'; 

Memperbarui beberapa kolom menggunakan COALESCE untuk penanganan NULL

Fungsi COALESCE dapat secara efektif mengelola nilai null saat memperbarui beberapa kolom. Ini memastikan nilai null diganti dengan nilai default yang sesuai, menjaga integritas data.

Kueri di bawah ini memperbarui kolom salary dan department dengan nilai yang diberikan. Jika kolom berisi NULL, nilainya diganti dengan nilai default.

UPDATE employees
-- If salary is NULL, set it to 50,000
SET salary = COALESCE(salary, 50000), 
-- If department is NULL, set it to 'IT'
    department = COALESCE(department, 'IT') 
-- Apply update to specific employee IDs
WHERE employee_id IN (102, 103, 104); 

Memperbarui beberapa kolom dan pembaruan kondisional dengan pernyataan CASE

Pernyataan CASE dapat digunakan untuk memperbarui kolom secara kondisional berdasarkan kriteria tertentu. Ini memungkinkan kontrol yang lebih terperinci atas nilai mana yang diperbarui dan dalam keadaan apa, sehingga menambah fleksibilitas pada pembaruan SQL.

Misalnya, Anda mungkin ingin memperbarui bonus dan position karyawan berdasarkan performance_rating mereka, seperti yang saya tunjukkan di sini:

-- Update bonus and position department
UPDATE employees
SET bonus = CASE 
                WHEN performance_rating = 'A' THEN salary * 0.15 
                WHEN performance_rating = 'B' THEN salary * 0.10 
                ELSE salary * 0.05
            END,
    position = CASE 
                  WHEN performance_rating = 'A' THEN 'Team Lead' 
                  WHEN performance_rating = 'B' THEN 'Senior'
                  ELSE position
              END
-- Apply update only to employees in the Sales department
WHERE department = 'Sales';

Memperbarui beberapa kolom saat melakukan join tabel

Anda juga dapat menggunakan JOIN dalam pernyataan UPDATE untuk memperbarui beberapa kolom berdasarkan data dari tabel terkait.

Misalkan Anda memiliki dua tabel, employees dan departments. Anda ingin memperbarui tabel employees dengan nama departemen dan lokasi dari tabel departments.

-- Update department name and location from departments table
UPDATE employees e
JOIN departments d ON e.department_id = d.department_id
SET e.department_name = d.department_name,
    e.location = d.location
WHERE e.department_id IN (1, 2, 3);

Saya merekomendasikan untuk mencoba track keterampilan SQL Fundamentals dan kursus Database Design kami untuk mempelajari lebih lanjut tentang desain basis data dan melakukan join tabel. Juga, lihat tutorial SQL UPDATE with JOIN: How it Works untuk mempelajari pembaruan lintas tabel.

Optimasi Kinerja dan Manajemen Transaksi

Optimasi kinerja penting saat menangani pembaruan SQL untuk beberapa kolom, terutama untuk himpunan data besar. Pertimbangkan praktik terbaik berikut untuk memastikan konsistensi data dan optimasi basis data.

  • Efisiensi dan Atomisitas: Memperbarui beberapa kolom dalam satu kueri meningkatkan kinerja basis data dengan mengurangi jumlah operasi yang perlu diproses oleh mesin basis data. Ini meningkatkan efisiensi sekaligus atomisitas, artinya semua pembaruan berhasil bersama-sama atau tidak ada yang diterapkan, sehingga menjaga konsistensi data.
  • Menggunakan Transaksi demi Keamanan: Transaksi memungkinkan Anda melindungi data dengan membatalkan perubahan jika terjadi kesalahan, sehingga pembaruan parsial tidak mengompromikan basis data. Transaksi juga membuat pembaruan batch lebih andal dalam lingkungan multi-pengguna, mengurangi risiko konflik data.

Kendala dan Kesalahan Umum

Ada beberapa kendala dan kesalahan umum yang dapat menyebabkan error saat menangani pembaruan multi-kolom. Mari kita lihat beberapa contohnya dan cara menghindarinya.

  • Lupa Menyertakan Klausa WHERE: Lupa menyertakan klausa WHERE dalam pernyataan UPDATE dapat menyebabkan pembaruan yang tidak diinginkan pada semua baris data. Untuk menghindarinya, pastikan selalu klausa WHERE terdefinisi dengan benar untuk menunjuk ke kolom yang ingin Anda perbarui.

  • Ketidaksesuaian Tipe Data: Ketidaksesuaian antara tipe data dapat menyebabkan error atau menghasilkan penyimpanan data yang salah. Selalu validasi bahwa tipe data dari nilai yang digunakan dalam kueri UPDATE Anda sesuai dengan kolom yang diperbarui.

Jika Anda ingin mempelajari lebih lanjut tentang tipe data dan memfilter data menggunakan WHERE, saya merekomendasikan kursus Intermediate SQL dari DataCamp.

Kesimpulan

Memahami cara memperbarui beberapa kolom di SQL penting untuk efisiensi dan ketepatan basis data. Saya harap setelah membaca ini, Anda melihat bahwa memperbarui beberapa kolom secara bersamaan adalah keterampilan yang diperlukan, dan Anda tidak boleh mencoba jalan pintas, karena bisa menyebabkan transaksi parsial atau keadaan yang tidak konsisten.

Bergantung pada arah karier Anda, saya merekomendasikan mendaftar ke career track Associate Data Analyst in SQL dari DataCamp untuk mempelajari keterampilan tingkat industri yang dibutuhkan untuk menjadi analis data, atau mencoba career track Associate Date Engineer in SQL jika Anda ingin menjadi data engineer. Dalam kedua kasus, saya juga akan mencoba memperoleh SQL Associate Certification, yang merupakan cara meyakinkan untuk menunjukkan kepada pemberi kerja penguasaan Anda menggunakan SQL untuk menyelesaikan masalah bisnis.

Allan Ouko

Penulis

Allan Ouko

Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

FAQ SQL

Bisakah saya memperbarui beberapa kolom di SQL dalam satu kueri?

Ya, Anda dapat memperbarui beberapa kolom sekaligus dalam satu pernyataan UPDATE, sehingga meningkatkan efisiensi dan ketepatan.

Bisakah saya memperbarui beberapa kolom dengan nilai berbeda untuk baris yang berbeda?

Ya, Anda dapat memperbarui banyak baris dengan nilai berbeda menggunakan kondisi dalam klausa WHERE atau menerapkan logika di dalam pernyataan CASE.

Apa yang terjadi jika saya lupa klausa WHERE saat memperbarui beberapa kolom?

Jika Anda menghilangkan klausa WHERE, pembaruan akan diterapkan ke semua baris dalam tabel, yang dapat menyebabkan modifikasi data yang tidak disengaja.

Bagaimana cara menangani nilai NULL saat memperbarui beberapa kolom?

Anda dapat menggunakan fungsi COALESCE untuk menangani nilai NULL dengan memberikan nilai default saat memperbarui.

Bisakah saya memperbarui kolom menggunakan data dari tabel lain?

Anda dapat melakukan pembaruan dengan menggabungkan tabel (join), sehingga memungkinkan Anda memperbarui kolom berdasarkan data terkait dari tabel lain.

Topik

Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai