The MySQL UPDATE Statement
The UPDATE
statement is used to modify the existing records in a table.
UPDATE Syntax
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Note: Be careful when updating records in a table! Notice the
WHERE
clause in the UPDATE
statement. The WHERE
clause specifies which record[s] that
should be updated. If you omit the WHERE
clause, all records in the table will be updated!
Demo Database
Below is a selection from the "Customers" table in the Northwind sample database:
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
UPDATE Table
The following SQL statement updates the first customer [CustomerID = 1] with a new contact person and a new city.
Example
UPDATE Customers
SET ContactName = 'Alfred Schmidt', City = 'Frankfurt'
WHERE CustomerID = 1;
The selection from the "Customers" table will now look like this:
1 | Alfreds Futterkiste | Alfred Schmidt | Obere Str. 57 | Frankfurt | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
UPDATE Multiple Records
It is the WHERE
clause that determines how many records will be updated.
The following SQL statement will update the PostalCode to 00000 for all records where country is "Mexico":
Example
UPDATE Customers
SET PostalCode = 00000
WHERE Country = 'Mexico';
The selection from the "Customers" table will now look like this:
1 | Alfreds Futterkiste | Alfred Schmidt | Obere Str. 57 | Frankfurt | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 00000 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 00000 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
Update Warning!
Be careful when updating records. If you omit the
WHERE
clause, ALL records will be updated!
Example
UPDATE Customers
SET PostalCode = 00000;
The selection from the "Customers" table will now look like this:
1 | Alfreds Futterkiste | Alfred Schmidt | Obere Str. 57 | Frankfurt | 00000 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 00000 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 00000 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | 00000 | UK |
SQL Update digunakan untuk mengubah data tabel yang sudah ada di sebuah tabel database.
Format:
Table of Contents
- Cara Mengubah Data Tabel Menggunakan Query UPDATE
- Cara Mengupdate Lebih dari 1 Baris
- Cara Mengupdate Record dengan Query UPDATE..ORDER BY..LIMIT
- Cara Mengupdate Seluruh Kolom dari Tabel MySQL
- Digunakan untuk apa perintah update?
- Bagaimana cara update atau memperbarui data di dalam tabel MySQL?
- Apa perintah SQL yang digunakan untuk mengupdate data di database?
- Apa itu query update?
- Bagaimana cara update atau memperbarui data di dalam tabel MySQL?
- Query Update untuk apa?
- Apa itu update database?
- Apa itu mysql_query?
UPDATE namatabel
SET namafield1= nilaifield1, namafield2= nilaifield2,...
WHERE kriteria
Kriteria where aturan nya sama seperti where pada query select. Yang paling sering digunakan adalah
WHERE namafieldprimarykey = nilainamafieldprimarykey
Sebagai contoh kasus kita akan menggunakan tabel bernama `kategori` yang ada dalam database `latihan` dengan struktur sebagai berikut:
Update Nilai Semua Baris dalam Tabel
!!! WARNING !!!
Jangan lupa menyertakan WHERE dalam query update! Kecuali kalau kamu bener2 ingin seluruh data yang ada
tabel bersangkutan berubah ke nilai yang sama.
Contoh kondisi tabel sebelum update:
Kita akan update modifieddate = tanggal/waktu hari ini dan modifiedby = 'rani' untuk semua baris.
Sintaks SQL: [again, hati2 karena ini mengubah seluruh baris]
UPDATE `kategori` SET `modifieddate` = now[], `modifiedby` = 'rani'
Nilai kolom yang diubah berlaku untuk seluruh baris:
Nilai 2019-12-16 10:21:34 adalah waktu saat rani execute query ini.
Update Nilai dengan Kriteria Tertentu [Primary Key]
Query ini biasa nya digunakan untuk update dalam CRUD standard, menggunakan
primary key sebagai kriteria. Untuk contoh kita lanjut dari kondisi data sebelum nya [di atas].
Query yang digunakan:
UPDATE kategori SET namakategori = 'Media Cetak', modifieddate = now[], modifiedby = 'rani' WHERE kodekategori = 'K003'
Hasilnya:
Update Nilai dengan Hasil Penggabungan String dan Kriteria Like
Lanjutan yah, masih menggunakan sample di atas. Disini kita akan mempelajari update kolom dengan penggabungan teks [string] dan bagaimana menggunakan kriteria kolom yang memuat kata tertentu dengan
sintaks [LIKE]. Contoh kasus berikut nya adalah jika kita ingin menambahkan kata 'Buku ' di depan nilai kolom namakategori yang mengandung kata 'fiksi'.
UPDATE kategori
SET namakategori = CONCAT['Buku ', namakategori]
WHERE namakategori LIKE '%Fiksi%'
Hasilnya:
Update Nilai dengan Formula dan Kriteria Kategori Tertentu
Berikutnya adalah update dengan nilai hasil formula dan kriterianya kategori tertentu. Disini saya masih menggunakan database latihan namun tabel yang digunakan adalah tabel buku. Dengan kondisi data awal sebagai
berikut:
Query pertama kita akan mengupdate harga buku dengan tambahan harga 1000 tiap buku dengan kategori K001.
UPDATE buku SET harga = harga + 1000 WHERE kodekategori = 'K001'
Hasilnya:
Query selanjutnya merupakan contoh jika kita ingin menaikan harga sebesar 10% dari harga saat ini untuk kodekategori K002.
UPDATE buku
SET harga = harga + [0.1 * harga]
WHERE kodekategori = 'K002'
Hasilnya:
Kita juga bisa mengambil nilai update dari tabel lain, contohnya ada pada artikel berikut:
Semoga uraian dan contoh tentang UPDATE ini bisa bermanfaat, klo temen-temen coder ada pertanyaan silahkan di kolom komentar ya!
Tutorial Belajar MySQL Part 26: Cara Mengubah Data Tabel MySQL [query UPDATE]
Table of Contents
- Cara Mengubah Data Tabel Menggunakan Query UPDATE
- Cara Mengupdate Lebih dari 1 Baris
- Cara Mengupdate Record dengan Query UPDATE..ORDER BY..LIMIT
- Cara Mengupdate Seluruh Kolom dari Tabel MySQL
- Digunakan untuk apa perintah update?
- Bagaimana cara update atau memperbarui data di dalam tabel MySQL?
- Apa perintah SQL yang digunakan untuk mengupdate data di database?
- Apa itu query update?
12 Jun 13 | | Tutorial MySQL | |
Dalam tutorial belajar MySQL kali ini kita akan membahas tentang query UPDATE. Query ini digunakan untuk mengubah atau memperbarui data dalam sebuah tabel MySQL.
Mempersiapkan Tabel Sample: daftar_dosen
Untuk tabel contoh, saya masih memakai tabel daftar_dosen yang kita buat pada tutorial query SELECT MySQL. Namun jika anda mengikuti tutorial query DELETE sebelumnya, maka tabel daftar_dosen telah kosong sebagai efek dari query TRUNCATE.
Oleh karena itu silahkan buat ulang tabel daftar_dosen agar bisa mengikuti contoh dalam tutorial ini.
Isi tabel daftar_dosen:
0160436012 | Sabrina Sari | 0812349900 | Pekanbaru |
0260432002 | Maya Ari Putri | 0812345234 | Palembang |
0275430005 | Susi Indriani | 0812656532 | Bogor |
0480432066 | Tia Santrini | 0812451177 | Padang |
0576431001 | M. Siddiq | 0812979005 | Jakarta |
0770435006 | Rubin Hadi | 0812567678 | Papua |
0869437003 | Mustalifah | 0812338877 | Aceh |
1080432007 | Arif Budiman | 0812456345 | Makasar |
Cara Mengubah Data Tabel Menggunakan Query UPDATE
Query UPDATE
dipakai untuk melakukan perubahan data pada tabel MySQL, yakni proses update baris atau record. Format dasar query UPDATE adalah sebagai berikut:
UPDATE nama_tabel SET nama_kolom = data_baru WHERE kondisi
nama_tabel
adalah nama dari tabel yang record/barisnya akan diperbaharui [update].nama_kolom
adalah nama kolom dari tabel yang akan diupdate.data_baru
adalah nilai data yang akan diinput sebagai nilai baru dari kolomkondisi
adalah kondisi atau syarat dari baris yang akan diubah, misalnya jika kolom nama dosen= Sabrina Sari maka lakukan update.
Sebagai contoh, jika ingin mengubah no HP milik dosen Sabrina Sari menjadi 085298710065 dari tabel daftar_dosen, maka querynya adalah sebagai berikut:
mysql> SELECT * FROM daftar_dosen WHERE nama_dosen='Sabrina Sari'; +------------+--------------+------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+--------------+------------+-----------+ | 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | +------------+--------------+------------+-----------+ 1 row in set [0.08 sec] mysql> UPDATE daftar_dosen SET no_hp ='085298710065' WHERE nama_dosen='Sabrina Sari'; Query OK, 1 row affected [0.07 sec] Rows matched: 1 Changed: 1 Warnings: 0 mysql> SELECT * FROM daftar_dosen WHERE nama_dosen='Sabrina Sari'; +------------+--------------+--------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+--------------+--------------+-----------+ | 0160436012 | Sabrina Sari | 085298710065 | Pekanbaru | +------------+--------------+--------------+-----------+ 1 row in set [0.00 sec]
Dari query diatas dapat dilihat bahwa kolom no_hp untuk nama dosen Sabrina Sari telah diupdate menjadi nomor baru.
Cara Mengupdate Lebih dari 1 Baris
Untuk query yang lebih rumit, kita bisa merubah beberapa kolom sekaligus. Syarat untuk kondisi juga dapat menggunakan operator logika seperti OR atau AND sekaligus:
mysql> SELECT * FROM daftar_dosen; +------------+----------------+------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+----------------+------------+-----------+ | 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | | 0260432002 | Maya Ari Putri | 0812345234 | Palembang | | 0275430005 | Susi Indriani | 0812656532 | Bogor | | 0480432066 | Tia Santrini | 0812451177 | Padang | | 0576431001 | M. Siddiq | 0812979005 | Jakarta | | 0770435006 | Rubin Hadi | 0812567678 | Papua | | 0869437003 | Mustalifah | 0812338877 | Aceh | | 1080432007 | Arif Budiman | 0812456345 | Makasar | +------------+----------------+------------+-----------+ 8 rows in set [0.00 sec] mysql> UPDATE daftar_dosen SET alamat ='Surabaya' WHERE nama_dosen='Rubin Hadi' OR NIP_dosen='1080432007' OR no_hp='0812345234'; Query OK, 3 rows affected [0.16 sec] Rows matched: 3 Changed: 3 Warnings: 0 mysql> SELECT * FROM daftar_dosen; +------------+----------------+------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+----------------+------------+-----------+ | 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | | 0260432002 | Maya Ari Putri | 0812345234 | Surabaya | | 0275430005 | Susi Indriani | 0812656532 | Bogor | | 0480432066 | Tia Santrini | 0812451177 | Padang | | 0576431001 | M. Siddiq | 0812979005 | Jakarta | | 0770435006 | Rubin Hadi | 0812567678 | Surabaya | | 0869437003 | Mustalifah | 0812338877 | Aceh | | 1080432007 | Arif Budiman | 0812456345 | Surabaya | +------------+----------------+------------+-----------+ 8 rows in set [0.00 sec]
Dari query diatas terlihat bahwa 3 baris/record telah berubah alamatnya menjadi Surabaya. Dalam satu statement UPDATE, kita membuat 3 buah logika OR.
Dalam manual MySQL, format penulisan lengkap dari query UPDATE adalah :
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
Penjelasan tentang penggunaan perintah ORDER BY dan LIMIT akan kita bahas sebentar lagi.
Cara Mengupdate Record dengan Query UPDATE..ORDER BY..LIMIT
Sama seperti query DELETE, query UPDATE juga memiliki perintah opsional ORDER BY..LIMIT untuk pemrosesan tingkat lanjut. Perintah ORDER BY..LIMIT bisa dipakai untuk membatasi perintah UPDATE dengan batas tertentu.
Misalkan ingin mengubah alamat dari 5 dosen pertama yang diurutkan berdasarkan nama, maka querynya:
mysql> SELECT * FROM daftar_dosen ORDER BY nama_dosen; +------------+----------------+------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+----------------+------------+-----------+ | 1080432007 | Arif Budiman | 0812456345 | Surabaya | | 0576431001 | M. Siddiq | 0812979005 | Jakarta | | 0260432002 | Maya Ari Putri | 0812345234 | Surabaya | | 0869437003 | Mustalifah | 0812338877 | Aceh | | 0770435006 | Rubin Hadi | 0812567678 | Surabaya | | 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | | 0275430005 | Susi Indriani | 0812656532 | Bogor | | 0480432066 | Tia Santrini | 0812451177 | Padang | +------------+----------------+------------+-----------+ 8 rows in set [0.00 sec] mysql> UPDATE daftar_dosen SET alamat ='Bali' ORDER BY nama_dosen LIMIT 5; Query OK, 5 rows affected [0.09 sec] Rows matched: 5 Changed: 5 Warnings: 0 mysql> SELECT * FROM daftar_dosen ORDER BY nama_dosen; +------------+----------------+------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+----------------+------------+-----------+ | 1080432007 | Arif Budiman | 0812456345 | Bali | | 0576431001 | M. Siddiq | 0812979005 | Bali | | 0260432002 | Maya Ari Putri | 0812345234 | Bali | | 0869437003 | Mustalifah | 0812338877 | Bali | | 0770435006 | Rubin Hadi | 0812567678 | Bali | | 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | | 0275430005 | Susi Indriani | 0812656532 | Bogor | | 0480432066 | Tia Santrini | 0812451177 | Padang | +------------+----------------+------------+-----------+ 8 rows in set [0.06 sec]
Dari hasil query tersebut kita bisa melihat 5 dosen awal alamatnya telah berubah menjadi Bali.
Cara Mengupdate Seluruh Kolom dari Tabel MySQL
Jika kita tidak hati-hati dan lupa memberikan kondisi pada perintah WHERE, maka query UPDATE kita akan merubah seluruh kolom dari tabel tersebut. Berikut contoh kasusnya:
mysql> SELECT * FROM daftar_dosen; +------------+----------------+------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+----------------+------------+-----------+ | 0160436012 | Sabrina Sari | 0812349900 | Pekanbaru | | 0260432002 | Maya Ari Putri | 0812345234 | Bali | | 0275430005 | Susi Indriani | 0812656532 | Bogor | | 0480432066 | Tia Santrini | 0812451177 | Padang | | 0576431001 | M. Siddiq | 0812979005 | Bali | | 0770435006 | Rubin Hadi | 0812567678 | Bali | | 0869437003 | Mustalifah | 0812338877 | Bali | | 1080432007 | Arif Budiman | 0812456345 | Bali | +------------+----------------+------------+-----------+ 8 rows in set [0.00 sec] mysql> UPDATE daftar_dosen SET no_hp='085278790005'; Query OK, 8 rows affected [0.06 sec] Rows matched: 8 Changed: 8 Warnings: 0 mysql> SELECT * FROM daftar_dosen; +------------+----------------+--------------+-----------+ | NIP_dosen | nama_dosen | no_hp | alamat | +------------+----------------+--------------+-----------+ | 0160436012 | Sabrina Sari | 085278790005 | Pekanbaru | | 0260432002 | Maya Ari Putri | 085278790005 | Bali | | 0275430005 | Susi Indriani | 085278790005 | Bogor | | 0480432066 | Tia Santrini | 085278790005 | Padang | | 0576431001 | M. Siddiq | 085278790005 | Bali | | 0770435006 | Rubin Hadi | 085278790005 | Bali | | 0869437003 | Mustalifah | 085278790005 | Bali | | 1080432007 | Arif Budiman | 085278790005 | Bali | +------------+----------------+--------------+-----------+ 8 rows in set [0.00 sec]
Dapat dilihat dengan mengeliminasi kondisi WHERE, seluruh kolom tabel akan ter-update. Terkadang hasil seperti ini memang kita harapkan. Namun seperti contoh di atas, kesalahan dalam membuat logika WHERE bisa berdampak fatal terhadap keseluruhan tabel.
Pada tutorial selanjutnya, kita akan bahas Cara Mengganti Tampilan Nama Kolom Menggunakan Alias [AS].
Digunakan untuk apa perintah update?
Perintah UPDATE digunakan untuk mengganti nilai baris data pada suatu tabel dalam database. Perintah UPDATE dapat mengganti satu baris data dan dapat juga mengganti beberapa baris data sekaligus.
Bagaimana cara update atau memperbarui data di dalam tabel MySQL?
Untuk melakukan update data atau memperbarui data yang ada didalam tabel database mysql ini yaitu dengan menggunakan perintah UPDATE, sedangkan untuk menghapusnya yaitu dengan menggunakan perintah DELETE.
Apa perintah SQL yang digunakan untuk mengupdate data di database?
Perintah update data merupakan salah satu perintah SQL yang digunakan untuk mengubah data sesuai dengan kondisi yang diinginkan.
Apa itu query update?
Query Update memungkinkan Anda untuk mengupdate data pada tabel dengan mengubah nilai eksplisit atau dengan menggunakan data pada tabel lain untuk membantu menerapkan perubahan.
Bagaimana cara update atau memperbarui data di dalam tabel MySQL?
Untuk melakukan update data atau memperbarui data yang ada didalam tabel database mysql ini yaitu dengan menggunakan perintah UPDATE, sedangkan untuk menghapusnya yaitu dengan menggunakan perintah DELETE.
Query Update untuk apa?
Dalam tutorial belajar MySQL kali ini kita akan membahas tentang query UPDATE. Query ini digunakan untuk mengubah atau memperbarui data dalam sebuah tabel MySQL.
Apa itu update database?
Query Update adalah cara untuk mengedit data yang telah diupload ke dalam suatu database apabila penulis salah dalam memasukkan data.
Apa itu mysql_query?
MySQL Query adalah perintah atau instruksi yang dapat digunakan untuk mengelola database atau tabel dalam database MySQL. Query lebih dikenal dengan sebutan SQL [Structured Query Language] yang artinya adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional.