Tutorial Ini Menjelaskan Pernyataan UPDATE MySQL Beserta Sintaks Kueri & Contoh. Anda Juga Akan Mempelajari Berbagai Variasi Perintah Tabel Pembaruan MySQL
Seperti database lainnya, kami selalu memiliki kebutuhan untuk memperbarui atau memodifikasi atau mengubah data yang ada di tabel. Di MySQL, kami memiliki pernyataan UPDATE yang dapat digunakan untuk memperbarui atau mengubah data dalam tabel
Dengan menggunakan perintah ini, kita dapat memperbarui satu atau banyak kolom. Kami dapat memperbarui nilai tabel tertentu sekaligus. Dengan menggunakan klausa WHERE kita dapat menentukan kondisi yang digunakan terutama ketika ada kebutuhan untuk memperbarui baris tertentu dari sebuah tabel
=> Klik di sini untuk seri tutorial MySQL lengkap
Sebelum melanjutkan, perlu diketahui, bahwa kita menggunakan MySQL versi 8. 0. Anda dapat mengunduhnya dari sini
Apa yang Akan Anda Pelajari
Sintaks Tabel PEMBARUAN MySQL
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;Penjelasan Sintaks
- Sintaks dimulai dengan kata kunci "UPDATE", sehingga memberi tahu Server MySQL tentang jenis aktivitas yang akan dilakukan. Ini adalah kata kunci wajib dan tidak dapat dihilangkan
- Berikutnya adalah nama tabel tempat tindakan pembaruan harus dilakukan. Ini wajib dan tidak bisa diabaikan
- Ketiga, lagi-lagi kata kunci – SET. Kata kunci ini memberi tahu Server MySQL tentang nilai yang akan diperbarui untuk nama kolom. Ini adalah kata kunci wajib dan tidak dapat dihilangkan
- Selanjutnya, akan ada nama kolom yang akan diperbarui bersama dengan nilainya yang sesuai. Ini juga wajib dan tidak bisa diabaikan
- Kemudian muncul kondisi WHERE, yang membatasi atau memfilter jumlah baris target tempat tindakan UPDATE harus diterapkan. WHERE juga merupakan kata kunci, tetapi opsional
Namun, klausa WHERE signifikan. Jika tidak disebutkan, atau jika kondisinya tidak diatur dengan benar maka baik tabel maupun baris yang tidak diperlukan tidak akan diperbarui
Pengubah Dalam Pernyataan Tabel UPDATE
Daftar di bawah ini adalah pengubah dalam pernyataan UPDATE
PRIORITAS RENDAH. Pengubah ini memberi tahu Mesin MySQL untuk menunda pembaruan hingga tidak ada koneksi yang membaca dari tabel
MENGABAIKAN. Pengubah ini menginformasikan Mesin MySQL untuk melanjutkan operasi UPDATE meskipun ada kesalahan. Tidak ada tindakan pembaruan yang dilakukan pada baris yang menyebabkan kesalahan
Contoh PEMBARUAN MySQL
Diberikan di bawah ini adalah contoh tabel yang dibuat di MySQL
Nama Skema. Pasifik
Nama Tabel. karyawan
Nama Kolom
- empNum – Menyimpan nilai bilangan bulat untuk nomor karyawan
- lastName – Menyimpan nilai varchar untuk nama belakang karyawan
- firstName – Menyimpan nilai varchar untuk nama depan karyawan
- email – Menyimpan nilai varchar untuk ID email karyawan
- deptNum – Menyimpan varchar untuk ID departemen milik karyawan
- gaji – Memegang nilai desimal gaji untuk setiap karyawan
Nama Skema. Pasifik
Nama Tabel. departemen
Nama Kolom
- deptNum – Menyimpan varchar untuk ID departemen dalam suatu organisasi
- kota – Menyimpan nama kota tempat departemen bekerja
- negara – Memegang nama negara yang sesuai dengan kota
- bonus – Menyimpan nilai persentase bonus
Perintah Tabel PEMBARUAN MySQL
#1) MySQL Memperbarui Kolom Tunggal
Sekarang, mari cari catatan yang ingin kita perbarui. Pertama, kita akan melihat skenario di mana kita harus memperbarui satu kolom menggunakan kata kunci UPDATE
Ini adalah karyawan dengan nomor karyawan 1008
Kueri dan hasil terkaitnya adalah sebagai berikut
Mari perbarui ID email karyawan ini dari ob@gmail. com ke oliver. bailey@gmail. com, menggunakan kata kunci UPDATE
MEMPERBARUI. Kata kunci memberi tahu mesin MySQL bahwa pernyataannya adalah tentang Memperbarui tabel
MENGATUR. Klausa ini menetapkan nilai nama kolom yang disebutkan setelah kata kunci ini ke nilai baru
DI MANA. Klausa ini menentukan baris tertentu yang harus diperbarui
Pasca mengeksekusi pernyataan UPDATE, output akan menampilkan statistik yang terkait dengan eksekusi pernyataan
Berikut detail yang ditampilkan
- Pernyataan yang dieksekusi
- Pesan yang menunjukkan jumlah baris yang diperbarui dan jika ada peringatan
Untuk memverifikasi output dari pernyataan UPDATE, mari jalankan kembali pernyataan SELECT untuk melihat perubahan pada ID email
Cuplikan Tabel Sebelumnya
empNumfirstNamelastNameemaildeptNum1008OliverBaileyob@gmail. com3
Pertanyaan
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ; _Cuplikan Tabel Setelah
empNumfirstNamelastNameemaildeptNum1008OliverBaileyoliver. bailey@gmail. com3
#2) Perbarui Beberapa Kolom MySQL
Sintaks untuk memperbarui lebih dari satu kolom menggunakan pernyataan UPDATE sama dengan memperbarui satu kolom. Satu pernyataan SET tunggal akan memiliki banyak nama kolom bersama dengan nilai barunya yang harus ditetapkan, dipisahkan dengan koma
Mari kita lihat baris yang perlu kita perbarui. Baris dengan nomor karyawan sebagai 1003
Di sini, kami akan mencoba memperbarui nama belakang dari "Mary" menjadi "Margaret" dan kemudian ID email dari ml@gmail. com ke margaret. langaley@gmail. com
Berikut ini adalah kueri UPDATE. Amati nama kolom yang dipisahkan dengan koma
Keluaran dari eksekusi di atas menunjukkan statistik yang sama seperti pada kasus sebelumnya
Berikut adalah output untuk record yang sama setelah eksekusi pernyataan UPDATE
Cuplikan Tabel Sebelumnya
empNumfirstNamelastNameemaildeptNum1003MaryLangleyml@gmail. com2
Pertanyaan
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ;Cuplikan Tabel Setelah
empNumfirstNamelastNameemaildeptNum1003MargaretLangleymargaret. langley@gmail. com3
#3) Pembaruan MySQL Dengan Fungsi REPLACE
Mari kita lihat lebih lanjut tentang menggunakan fungsi REPLACE untuk MEMPERBARUI baris dalam tabel. Inilah catatan target kami yang ingin kami perbarui
Catatan di bawah ini adalah untuk nomor karyawan 1010. Kami akan menargetkan untuk memperbarui ID email dari ja@gmail. com ke jacob. armstrong@gmail. com
Mari gunakan kueri UPDATE berikut dengan fungsi REPLACE yang akan memperbarui ID email
Berikut ini adalah parameter yang dilewatkan dalam fungsi REPLACE. Semua 3 parameter bersifat posisi i. e. urutan parameter tidak dapat diubah
Parameter 1 – Berisi nama ID email
Parameter ke-2 – Berisi FROM email ID yang akan diubah
Parameter ke-3 – Berisi ID email TO yang merupakan nilai baru
Berikut adalah snapshot dari tabel pasca-eksekusi pernyataan UPDATE
Cuplikan Tabel Sebelumnya
empNumfirstNamelastNameemaildeptNum1010JacobArmstrongja@gmail. com4
Pertanyaan
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ;Cuplikan Tabel Setelah
empNumfirstNamelastNameemaildeptNum1010JacobArmstrongjacob. armstrong@gmail. com4
#4) PEMBARUAN MySQL Menggunakan Pernyataan SELECT
Dalam tipe UPDATE ini, nilai baru untuk kolom yang akan diperbarui diambil oleh pernyataan SELECT dalam subquery. Jadi, mari kita ambil contoh di sini dari tabel "karyawan" kita. Inilah catatan target kami yang ingin kami perbarui
Dalam hal ini, kami akan memperbarui nomor departemen i. e. kolom deptNum, menggunakan tabel departemen. Jika kita melihat tabel departemen, deptNum = 5 sesuai dengan Berlin. Mari pindahkan karyawan ini ke Charlotte di deptNum = 2
Untuk mencapai tugas ini, pernyataan UPDATE berikut digunakan
Untuk memverifikasi output dari pernyataan UPDATE kami, mari jalankan pernyataan SELECT
Seperti yang ditunjukkan di atas, nilai kolom deptNum telah diperbarui menjadi “2”
Cuplikan Tabel Sebelumnya
empNumfirstNamelastNameemaildeptNum1005PeterLeepl@gmail. com5
deptNumCityCountry1New YorkUnited States2CharlotteUnited States3ChicagoUnited States4LondonEngland5BerlinGermany6MumbaiIndia7RomeItaly
Pertanyaan
<UPDATE employees SET deptNum = (SELECT deptNum FROM departments WHERE city = "Charlotte" ) WHERE empNum = 1005 ;_Cuplikan Tabel Setelah
empNumfirstNamelastNameemaildeptNum1005PeterLeepl@gmail. com2
#5) UPDATE MySQL Beberapa Baris
Terkadang, kami mungkin menghadapi persyaratan di mana kami harus memperbarui satu atau beberapa kolom untuk beberapa baris dengan nilai yang berbeda
Misalnya, kami ingin memberikan sejumlah bonus departemen bijaksana i. e. semua karyawan di departemen harus mendapatkan sejumlah bonus tertentu
Sintaks umumnya adalah sebagai berikut
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END;Untuk menjelaskan hal ini dengan sebuah contoh, mari tambahkan satu kolom lagi ke tabel departemen. Kami akan menambahkan kolom "bonus" ke tabel departemen. Idenya adalah untuk menetapkan persentase bonus untuk setiap departemen dan menaikkan gaji karyawan dengan persentase yang sesuai dengan masing-masing departemen
Untuk mencapai ini, kami akan menjalankan pernyataan ALTER berikut untuk menambahkan kolom
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);_Berikut ini adalah struktur tabel setelah perubahan di atas. Kolom baru akan ditambahkan dengan NULL sebagai nilai
Selanjutnya, mari tulis kueri UPDATE yang akan memperbarui persentase bonus untuk setiap departemen
Pasca eksekusi pernyataan di atas, berikut adalah snapshot dengan nilai yang diperbarui untuk kolom Bonus
Cuplikan Tabel Sebelumnya
deptNumCityCountryBonus1New YorkUnited StatesNULL2CharlotteUnited StatesNULL3ChicagoUnited StatesNULL4LondonEnglandNULL5BerlinGermanyNULL6MumbaiIndiaNULL7RomeItalyNULL
Pertanyaan
UPDATE departments SET bonus = CASE WHEN deptNum = 1 THEN 3.00 WHEN deptNum= 2 THEN 5.00 WHEN deptNum= 3 THEN 8.00 WHEN deptNum= 4 THEN 10.00 WHEN deptNum= 5 THEN 13.00 WHEN deptNum= 6 THEN 15.00 WHEN deptNum= 7 THEN 18.00 END;Cuplikan Tabel Setelah
deptNumCityCountryBonus1New YorkUnited States32CharlotteUnited States53ChicagoUnited States84LondonEngland105BerlinGermany136MumbaiIndia157RomeItaly18
#6) UPDATE MySQL Menggunakan INNER JOIN Keyword
BERGABUNG adalah salah satu kata kunci terpenting dalam pernyataan SQL. Biasanya, Anda mungkin telah menggunakannya dalam pernyataan SELECT
Pada dasarnya ada empat jenis pernyataan GABUNG
- GABUNG DALAM. Mengambil catatan yang umum di kedua tabel
- GABUNG KIRI. Mengambil semua rekaman dari tabel di sisi kiri kata kunci dan rekaman yang cocok dari tabel di sisi kanan kata kunci
- GABUNG KANAN. Mengambil semua rekaman dari tabel di sisi kanan kata kunci dan rekaman yang cocok dari tabel di sisi kiri kata kunci
- GABUNG LUAR. Mengambil semua rekaman dari kedua tabel, dengan rekaman tidak cocok yang sesuai direpresentasikan sebagai NULL
MySQL memberikan kesempatan unik untuk menggunakan GABUNG bahkan dalam pernyataan UPDATE untuk melakukan pembaruan lintas tabel. Namun, itu terbatas hanya untuk INNER JOIN dan LEFT JOIN
Sintaks generik pernyataan UPDATE menggunakan kata kunci JOIN adalah sebagai berikut
UPDATE TAB1, TAB2, [INNER JOIN | LEFT JOIN] TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition _- Di sini, pernyataan UPDATE mengharapkan tiga item data
- Nama tabel, TAB1 dan TAB2, tempat penggabungan dilakukan
- Jenis GABUNG yang ingin kami lakukan, INNER atau LEFT
- Kemudian ikuti perintah SET yang dengannya kita dapat memperbarui nilai kolom di salah satu/atau TAB1 dan TAB2
- Terakhir, klausa WHERE untuk memperbarui hanya baris yang sesuai dengan kriteria kami
Untuk menjelaskan hal ini dengan sebuah contoh, mari tambahkan satu kolom lagi ke tabel Karyawan. Kami akan menambahkan kolom "gaji" ke tabel Karyawan. Idenya adalah menaikkan gaji karyawan dengan nilai persentase bonus yang ada di kolom bonus tabel departemen
Untuk mencapai ini, kami akan menjalankan pernyataan ALTER berikut untuk menambahkan kolom
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);_Selanjutnya, kita akan mengisi dua field baru yang telah kita tambahkan. Posting mengisi nilai-nilai, berikut adalah isi dari tabel
Tabel Karyawan
empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com130001002SchwatzMikems@gmail. com150001003LangleyMargaretmargaret. langley@gmail. com280001004HareraSandrash@gmail. com1100001005LeePeterpl@gmail. com2130001006KeithJennyjk@gmail. com2150001007SchmittJamesjs@gmail. com4180001008BaileyOliveroliver. bailey@gmail. com3210001009BekerHarryhb@gmail. com5240001010ArmstrongJacobjacob. armstrong@gmail. com427000
Sekarang, mari gunakan kata kunci GABUNG dan perbarui gaji semua karyawan dengan persentase bonus di tabel departemen. Di sini, deptNum adalah kunci di mana kedua tabel akan dicocokkan
Berikut ini adalah snapshot dari gaji karyawan sampai sekarang
Snapshot dari tabel Departemen adalah sebagai berikut
Berikut query UPDATE yang akan mengupdate gaji karyawan berdasarkan persentase bonus pada tabel departemen berdasarkan kolom key deptNum
Sekarang, mari kita verifikasi gaji setiap karyawan setelah kenaikan gaji
Jika Anda membandingkannya dengan snapshot sebelumnya, Anda dapat dengan mudah memahami persentase bonus yang ditambahkan ke gaji
Semua karyawan harus bersorak
Cuplikan Tabel Sebelumnya
empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com130001002SchwatzMikems@gmail. com150001003LangleyMargaretmargaret. langley@gmail. com280001004HareraSandrash@gmail. com1100001005LeePeterpl@gmail. com2130001006KeithJennyjk@gmail. com2150001007SchmittJamesjs@gmail. com4180001008BaileyOliveroliver. bailey@gmail. com3210001009BekerHarryhb@gmail. com5240001010ArmstrongJacobjacob. armstrong@gmail. com427000
deptNumCityCountryBonus1New YorkUnited States32CharlotteUnited States53ChicagoUnited States84LondonEngland105BerlinGermany136MumbaiIndia157RomeItaly18
Pertanyaan
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ; _0Cuplikan Tabel Setelah
empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com13182. 71002SchwatzMikems@gmail. com15304. 51003LangleyMargaretmargaret. langley@gmail. com288201004HareraSandrash@gmail. com1106091005LeePeterpl@gmail. com214332. 51006KeithJennyjk@gmail. com216537. 51007SchmittJamesjs@gmail. com4217801008BaileyOliveroliver. bailey@gmail. com324494. 41009BekerHarryhb@gmail. com530645. 61010ArmstrongJacobjacob. armstrong@gmail. com432670
#7) UPDATE MySQL Menggunakan Kata Kunci JOIN LEFT
Seperti yang sudah dijelaskan di bagian sebelumnya, ada dua jenis JOIN yang diperbolehkan di MySQL UPDATE. Kami telah melihat UPDATE menggunakan INNER JOIN
Mari kita mulai dengan UPDATE menggunakan LEFT JOIN
Contoh
Kami memiliki karyawan baru yang belum ditugaskan ke departemen mana pun. Tapi kami harus memberikan semua karyawan baru bonus 1%. Sekarang, karena pegawai baru tidak ditugaskan ke departemen mana pun, kami tidak akan bisa mendapatkan informasi persentase bonus apa pun dari tabel itu. Dalam kasus seperti itu, kami akan MEMPERBARUI gaji untuk karyawan baru menggunakan LEFT JOIN
Untuk mencapai ini, mari tambahkan karyawan baru ke database karyawan
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ; _1Berikut ini adalah rekor baru yang telah kami tambahkan
Tabel Karyawan
empNumfirstNamelastNameemaildeptNumSalary1001AndrewsJackja@gmail. com131831002SchwatzMikems@gmail. com153051003LangleyMargaretmargaret. langley@gmail. com288201004HareraSandrash@gmail. com1106091005LeePeterpl@gmail. com2143331006KeithJennyjk@gmail. com2165381007SchmittJamesjs@gmail. com4217801008BaileyOliveroliver. bailey@gmail. com3244941009BekerHarryhb@gmail. com5306461010ArmstrongJacobjacob. armstrong@gmail. com4326701011HanksTomth@gmail. comNULL10000
Selanjutnya, kami akan memberikan Tom bonus sebesar 1% di atas gajinya menggunakan pernyataan UPDATE dengan klausa LEFT JOIN
Diberikan di bawah ini adalah gaji pasca kenaikan TOM
Jika Anda membandingkannya dengan snapshot sebelumnya, Anda dapat dengan mudah memahami persentase bonus yang ditambahkan ke gaji
Cuplikan Tabel Sebelumnya
empNumfirstNamelastNameemaildeptNumSalary1011TomHanksth@gmail. comNULL10000
Pertanyaan
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ; _2Cuplikan Tabel Setelah
empNumfirstNamelastNameemaildeptNumSalary1011TomHanksth@gmail. comNULL10100
Bacaan yang Direkomendasikan =>> MySQL Bergabung
Pertanyaan dan Jawaban yang Sering Diajukan
T #1) Bagaimana cara memperbarui atribut di MySQL?
Menjawab. Kita dapat memperbarui atribut menggunakan pernyataan MySQL UPDATE, dengan pernyataan yang diawali dengan kata kunci UPDATE diikuti dengan nama tabel. Berikutnya adalah klausa SET diikuti dengan nama kolom dan klausa WHERE
T #2) Bagaimana Anda memperbarui banyak catatan di MySQL?
Menjawab. Seperti yang digambarkan di atas, di bawah bagian "Perbarui Beberapa Baris", kita dapat memperbarui banyak baris untuk satu atau lebih kolom dengan nilai yang sama atau berbeda menggunakan pernyataan CASE
T #3) Bisakah kita menggunakan GABUNG dalam permintaan Perbarui di MySQL?
Menjawab. Ya, MySQL mengizinkan penggunaan GABUNG dalam pernyataan UPDATE. Namun, itu dibatasi hanya untuk INNER dan LEFT JOIN